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

标签 javascript replace

首先对我的英语感到抱歉,我的代码在执行时不起作用

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

我把 thecode.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;}

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

最佳答案

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

关于javascript - 替换文档正文中的所有单词不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30659250/

相关文章:

regex - 正则表达式和字符串操作

javascript - 删除javascript中各种范围内的Unicode字符

search - 在 vim 中获取最后一次搜索或搜索&替换字符串?

javascript - AJAX mysql命令没有立即执行?

javascript - 四舍五入一个数字得到没有小数

javascript - jQuery 价格的正则表达式

javascript - 将 CSS 样式应用于数据表中的特定列

javascript - 了解执行模型和事件循环

excel - Excel 中的单词替换宏不起作用

javascript - 如何通过js去除文本中的泛滥?