目的:替换页面的所有“收货”为“联系”
代码:var reg = new RegExp("收货", "g");
            var stringObj = document.body.innerHTML;
            var newStr = stringObj.replace(reg, "联系");
            document.write(newStr);
这样处理完了就没有样式了,我是在body onload里加载的,求老鸟们指点下

解决方案 »

  1.   

    补充下:最好能在当前页面看到替换后的效果,我不想用document.write重新填充页面了,效果感觉不好
      

  2.   


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="gb2312" />
    <title></title>
    <style type="text/css">
    </style>
    </head>
    <body>
    <div id="test">
    收货123收货333333333333收货123
    </div>
    <script type="text/javascript">
    var t = document.getElementById('test');
    var reg = new RegExp("收货", "g");
    var stringObj = t.innerHTML;
    var newStr = stringObj.replace(reg, "联系");
    t.innerHTML = newStr;
    </script>
    </body>
    </html>
      

  3.   

    你在body中绑定onload事件去执行函数,但函数中却使用document.write(newStr);
    这样,你一执行完,当前页面中就只剩下了:newStr了。你右键查看一下页面的源文件就知道了document.body.innerHTML=newStr;//试试或者像我楼上这位举的例子一样,将所有的内容放进一个div内。省得你body中出现不可控的意外的时候,你觉得莫名其妙
      

  4.   

    回复下3楼的那位仁兄,document.body.innerHTML = new Str 我试过的,效果没有全部替换掉,我发完帖子就那样试过了,效果不理想。2楼那位仁兄的想法是不错,不过意义不大,不知道是不是因为我里面的有些东西是脚本注入的关系
      

  5.   


    所以我说:你放进一个div内,那个div内就只有内容的那一种,没有脚本代码,没有脚本依赖性的那种你使用document.body这种来替换,这思路本来就不好你要么就是在后台输出前对内容中有需要做这种替换的,先替换好,然后再输出。这才是正道如果这种需求其实只是出现在某一个元素以内,那就只操作那一个元素反正就这意思吧
      

  6.   

    意思我明白,把body内的东西放到一个div里来操作,但我觉得意义不大,body只是一个比div更大的容器而已,更重要的是我试过了后没效果
      

  7.   

    你还是没明白。。不是叫你把body内的东西放去一个div。而是保证要替换的内容比较纯粹,没有其他什么容易出现意外的东西在里面。比如只有html标签或者就只是单纯的文本之类的你试过没效果?
    window.onload=function(){   var reg = new RegExp("收货", "g");
        var stringObj = document.body.innerHTML;
        var newStr = stringObj.replace(reg, "联系");
        document.body.innerHTML=newStr;
    }这样会没效果??
      

  8.   

    那我不知道你具体的测试环境。不好说我测试,嵌套了几个div之类的。没发现一点问题。全都替换了
      

  9.   


    var reg = new RegExp("收货", "g");
      var stringObj = document.body.innerHTML;
      var newStr = stringObj.replace(reg, "联系");
      document.body.innerHTML = newStr;//用这个
      //document.write(newStr);这个注释