替换文档正文中的所有单词都不起作用

时间:2015-06-05 05:54:01

标签: 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');
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;}

我想我不会犯任何错误,但是当我执行它时,它不起作用。
感谢您的关注...... :)

1 个答案:

答案 0 :(得分:2)

无需迭代 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
};

document.onreadystatechange = function () {
  var state = document.readyState; 
  if(state == 'complete') {
      replaceBodyElements();
      addTitleToSurveyUrls();
  }
}​

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