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();
}
}