getElementsByTagName查找标签然后读取字符串并替换文本

时间:2013-01-06 07:12:29

标签: javascript google-chrome

我花了很长时间尝试和努力,你没有运气,因为我对javascript很新。我正在制作一个谷歌浏览器扩展程序,我希望阻止用户定义的页面上的某些单词,但我希望这样做没有getelementbyid作为网页,他们没有我想要的ID。例如,让用户键入他希望阻止的单词,然后在他们访问的任何网页上替换这些单词。 HElP非常感兴趣。 到目前为止,我所有的一切都是通过id获取元素而不是标签

3 个答案:

答案 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)

谢谢你们,但我修复了它只是代表我的语法错误