2011-07-27 113 views
3

我想替换页面上的所有文字,例如:所有的“你好”,以“喜”Chrome扩展替换文本

我目前使用

body.innerHTML = body.innerHTML.replace("Hello", "Hi");

我已经已运行到两个问题:

  1. 有可能被命名为Hello类或ID(如<div id="Hello"></div>的话,那就乱了这个代码)
  2. 出于某种原因,当我尝试更换阀体

回答

3

因为这是针对Chrome的,您不必担心传统浏览器(咳嗽 IE),这听起来像是一个treeWalker的工作。有一个体面的例子如何使用它here

1

做这件事innerHTML将垃圾全部挂在页面上的元素的事件处理程序的Gmail打破了,因为你在做什么有破坏之前的元素和用新的替代

要做你想做的事情,你必须步行dom并更新文本节点的值(仅)。有一个例子,完整的代码和live copy,在this other answer here on Stack Overflow。你只需要改变handleText函数在做什么,而且你很好。