0
所以我有一个Chrome扩展,它在加载页面时将替换由正则表达式指定的文本,并将其替换为我想要的任何文本。现在,我不想用更多文本替换它,而是想用超链接替换文本,但我遇到了麻烦。此代码只是打破页面:为什么JavaScript不能用链接代替文本?
var elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
for (var j = 0; j < element.childNodes.length; j++) {
var node = element.childNodes[j];
if (node.nodeType === 3) {
var text = node.nodeValue;
var replacedText = document.createTextNode(text.replace(/dog/gi, 'jQuery'));
var aLink = document.createElement('a');
aLink.href = "http://google.com";
aLink.appendChild(replacedText);
element.replaceChild(aLink, node);
}
}
}
任何想法我做错了什么?
什么是控制台输出的错误。 –
只是一个猜测,但是它会永久运行,因为循环(基于一个活动列表)递归地递减到刚刚创建的''?你需要指定你的意思是“休息”。 – apsillers