首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

这个富HTML文件内容,怎么进行正则,达到小弟我所要的结果

2013-03-21 
这个富HTML文件内容,如何进行正则,达到我所要的结果?比如:以下内容从网站后台读取。内容为:(以下内容无法通

这个富HTML文件内容,如何进行正则,达到我所要的结果?
比如:

以下内容从网站后台读取。内容为:(以下内容无法通过后台进行编辑)

<p>这个是今天拍的<br /><a href="http://xx.com/aa.jpg"><img src="http://xx.com/aa.jpg" /></a><br />
</p>

<p><a href="http://xx.com">分享来源</a></p>


我希望通过JS,对A标签进行一下处理,跳转的网址与图片地址不能直接打开,而是通过加上类似于以下代码onclick="open('http://xx.com/aa.jpg')"或者onclick="open('http://xx.com/')"来进行处理,这个需要怎么做呢?
[解决办法]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function init(){
var as=document.links;
for(var i=0;i<as.length;i++){
as[i].onclick=function(e){
window.open(this.href);
var a=e
[解决办法]
window.event;
if(a.preventDefault){
a.preventDefault();
}else{
a.returnValue=false;
}
}
}
}
window.onload=init;
</script>
</head>

<body>
<p>这个是今天拍的<br /><a href="http://xx.com/aa.jpg"><img src="http://xx.com/aa.jpg" /></a><br />
</p>

<p><a href="http://xx.com">分享来源</a></p>
</body>
</html>
或者修改target属性为_blank试试
[解决办法]
是在数据库中保存取出来的,就在服务器端用服务器端脚本实现
[解决办法]
这是用jquery的方法实现的:


<script src="jquery1.7.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
    $("a[href='http://xx.com']").attr("onclick","window.open('http://xx.com/');return false")
});
</script>

你可以让服务器端语言(如ASP),动态生成这段脚本,只需要把http://xx.com替换就可以。
[解决办法]
如果你想把全部a标记都替换掉,可以这么写:

$("a").attr("onclick","window.open(this.href);return false")

[解决办法]

var str = '<p>这个是今天拍的<br /><a href="http://xx.com/aa.jpg"><img src="http://xx.com/aa.jpg" /></a><br /></p><p>这个是今天拍的<br /><a href="http://xx.com/aa.jpg"><img src="http://xx.com/aa.jpg" /></a><br /></p><p>这个是今天拍的<br /><a href="http://xx.com/aa.jpg"><img src="http://xx.com/aa.jpg" /></a><br /></p>';
var reg = /<a\s+.*?(href\s*=('
[解决办法]
"
[解决办法]
)(.+?)\2)[^>]*?>/ig;
str = str.replace(reg,function(){
     var link = arguments[3];
     return arguments[0].replace(arguments[1],"onclick="window.open('"+link+"')"");
});
console.log(str);



[解决办法]
这种建议使用服务器语言正则替换。可不能随便当JS变量来处理,因为富文本什么符号都可能含有"'分行等,直接做js变量很容易出错。

热点排行