日期:2014-05-16  浏览次数:20349 次

这个富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);