Javascript 替换文档正文中的所有单词';行不通

Javascript 替换文档正文中的所有单词';行不通,javascript,replace,Javascript,Replace,首先对不起我的英语,我有代码,当我执行它时,它不工作 <script language="javascript" src="/thecode.js"></script> 我将code.js放在页脚 var msg=document.body.innerHTML; for(var i=0;i<msg.length;i++){ var tx=document.body[i].innerHTML; tx=tx.replace(/dog/ig,'animal'); t

首先对不起我的英语,我有代码,当我执行它时,它不工作

<script language="javascript" src="/thecode.js"></script>

我将code.js放在页脚

var msg=document.body.innerHTML;
for(var i=0;i<msg.length;i++){
var tx=document.body[i].innerHTML;
tx=tx.replace(/dog/ig,'animal');
tx=tx.replace(/apple/ig,'fruit');
tx=tx.replace(/\[VIdEo\]/ig,'Video');
tx=tx.replace(/http\:\/\/example\.com/ig,'http://thelink.com');
document.body.innerHTML=tx;}
var msg=document.body.innerHTML;

对于(var i=0;i无需迭代body元素
试试这个:

想用那个js换成吗?
我过去经常这样做

function addTitleToSurveyUrls() {
    var elements = document.getElementsByTagName('a');
    for(var el in elements) {
       var element = elements[el];
       var href = element.getAttribute("href");
       if(href.indexOf('survey_')>-1) {
           element.setAttribute('title', 'Some TITLE HERE');
       }
    }
}

function replaceBodyElements() {
    var tx=document.body.innerHTML;
        tx = tx.replace(/dog/ig,'animal');
        tx = tx.replace(/apple/ig,'fruit');
        tx = tx.replace(/\[VIdEo\]/ig,'Video');
        tx = tx.replace(/http\:\/\/example\.com/ig,'http://thelink.com');
    document.body.innerHTML=tx;
}

window.onload = function(){
    replaceBodyElements();
    addTitleToSurveyUrls();
    // ... some another operations
};

我使用了onload事件,因为文档可能有动态元素等,所以最好等到所有元素都加载并更改它。
或者您可以将window.onload替换为window.document.onload

不需要for循环…还有
document.body[i]
是错误的…请删除for循环和
var tx=document.body.innerHTML;
也不要这样做,因为它可以删除以前添加的任何事件处理程序(使用脚本添加)请注意,使用正则表达式处理HTML是一种奇怪而意外的方式。很抱歉再次询问,但我想使用该js更改为?
我曾经使用过它,但它对我不起作用:(它不起作用:(
我的意思是我想添加'title='some title for SEO'“属性到“”元素,但我无法编辑此“”元素。SEO?在从服务器端输出html时添加它。大多数机器人不处理JS动态更改的元素(:它仍然不起作用,我想我保持这样,一个没有标题的链接没有问题…再次感谢您,到目前为止的帮助…”)
document.onreadystatechange = function () {
  var state = document.readyState; 
  if(state == 'complete') {
      replaceBodyElements();
      addTitleToSurveyUrls();
  }
}​