本帖最后由 zcyzzzm 于 2009-11-08 12:28:15 编辑

解决方案 »

  1.   


    <body>
        <div id="div1">
            <A href="http://www.baidu.com.sczx89.com/s?wd=高圆圆" target=_blank>高圆圆 </A>| <A href="http://www.baidu.com.sczx89.com/s?wd=李小璐">李小璐 </A>| <A href="http://www.baidu.com.sczx89.com/s?wd=赵薇" target=_blank>赵薇 </A>| <A href="http://www.baidu.com.sczx89.com/s?wd=叶子楣" target=_blank>叶子楣 </A>| <A href="http://www.baidu.com.sczx89.com/s?wd=瑶瑶">瑶瑶 </A>| <A href="http://www.baidu.com.sczx89.com/s?wd=温碧霞" target=_blank>温碧霞 </A>|
    </body>
    <script type="text/javascript">
    var g=function(id) {return document.getElementById(id);};
    var links=document.links;//如果只转换一部分则使用element.getElementsByTagName("a");,如果是个字符串可以将其插入到一个div中来替换,然后再取其innerHTML
    var len=links.length;
    for(var i=0;i<len;i++) {
    var cur=links[i];
    cur.href=cur.href.replace(/[\u4e00-\u9fa5]/g,function($1){
    return escape($1);//试了这三种编码方式好像都有问题,反而不编码可以正常搜索
    //return encodeURI($1);
    //return encodeURIComponent($1);
    });
    if(!cur.target)
    cur.target="_blank";
    }
    </script>
    </html>
      

  2.   

    sohighthesky 大哥,如何编译回原来的值呢?
      

  3.   

    function zhuanhuan(str){ 
    return str.replace(/href=(?:"([^"]*)"|'([^']*)'|(\S+))/gi, function($0, $1, $2, $3) {
    return 'href="' + encodeURI($1 || $2 || $3) + '"'
    }).replace(/<a\b(?=((?!target=).)*>)/ig, function($0) {
    return $0 + " target='_blank'";
    });
      

  4.   

    replace(/<a\b(?=((?!target=).)*>)/ig, function($0)这里会不会有些问题,“判断有没有“target=”,如果没有添加 target=_blank ”好像不行
      

  5.   

    怎么会不行,测试了没问题.function zhuanhuan(str) {
        return str.replace(/href=(?:"([^"]*)"|'([^']*)'|(\S+))/gi, function($0, $1, $2, $3) {
            return 'href="' + encodeURI($1 || $2 || $3) + '"'
        }).replace(/<a\b(?=((?!target=).)*>)/ig, "$& target='_blank'"); // 简化一下
    }
      

  6.   

    另外希望再帮忙修改一下var sss='<a href="http://www.baidu.com.sczx89.com/s?wd=顾长卫车震">顾长卫车震</a>|<div align=center><a href=/html/xinwenkuaixun_485_144_2.html>下一页</a>'就是说外部链接,“判断有没有“target=”,如果没有添加 target=_blank ”内部链接则不对 target进行处理(如下一页这样的链接则不管target),请问怎么写一下啊 
      

  7.   

    function zhuanhuan(str) {
        return str.replace(/href=(?:"([^"]*)"|'([^']*)'|(\S+))/gi, function($0, $1, $2, $3) {
            return 'href="' + encodeURI($1 || $2 || $3) + '"'
        }).replace(/<a\b(?=((?!target=).)*>)(?=[^>]*href=["']?http:\/\/)/ig, "$& target='_blank'");
    }