我花了很长时间尝试和努力,你没有运气,因为我对javascript很新。我正在制作一个谷歌浏览器扩展程序,我希望阻止用户定义的页面上的某些单词,但我希望这样做没有getelementbyid作为网页,他们没有我想要的ID。例如,让用户键入他希望阻止的单词,然后在他们访问的任何网页上替换这些单词。 HElP非常感兴趣。 到目前为止,我所有的一切都是通过id获取元素而不是标签
答案 0 :(得分:1)
文本可以在任何元素中,因此getElementsByTagName
将没有多大用处。
相反,请考虑迭代所有节点。查找类型3的节点(文本节点),并替换它们的内容。
从document.body
开始,获取其.children[]
,然后递归循环。
答案 1 :(得分:0)
以下是一个工作示例:http://jsfiddle.net/cmontgomery/V45LS/
秘密酱:
soapInTheMouth = function(node) {
var allNodes = node.childNodes;
$.each(allNodes, function(i,n) {
if(n.nodeType === 3) {
n.nodeValue = n.textContent.replace(/shit/g,'crap');
} else {
soapInTheMouth(n);
}
});
}
答案 2 :(得分:0)
谢谢你们,但我修复了它只是代表我的语法错误