比如:以下内容从网站后台读取。内容为:(以下内容无法通过后台进行编辑)<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/')"来进行处理,这个需要怎么做呢?

解决方案 »

  1.   

    我想过把href=替换为onclick="('  但是,图片地址与网页地址后面的')"这个怎么来加呢?所以头大。 
      

  2.   

    <!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试试
      

  3.   

    回版主:我这边只能取数据出来,无法在添加数据保存到数据库前,进行一些动作。就是查询SQL输出时,通过服务器端语言进行替换等,也是需要一个规则或者一个能达到目标的正则表达式,这样的话,就不重要了,那JS也是一定能实现的。
      

  4.   

    这是用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替换就可以。
      

  5.   

    如果你想把全部a标记都替换掉,可以这么写:$("a").attr("onclick","window.open(this.href);return false")
      

  6.   


    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);
      

  7.   

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