Chrome扩展程序替换文字

时间:2011-07-27 13:51:26

标签: javascript google-chrome-extension

我想替换页面上的所有文本,例如:所有“Hello”到“Hi”

我正在使用

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

我遇到了两个问题:

  1. 可能存在名为Hello的类或ID(例如<div id="Hello"></div>,然后会弄乱此代码)
  2. 由于某种原因,当我尝试更换正文时,Gmail会中断

2 个答案:

答案 0 :(得分:4)

因为这是特定于Chrome的,您不必担心旧版浏览器( cough IE),这听起来像是treeWalker的工作。有一个很好的例子说明如何使用它here

答案 1 :(得分:1)

执行该innerHTML事件会将所有挂钩到页面上元素的事件处理程序丢弃,因为您在那里执行的操作会破坏以前的元素,而用新的元素替换它们。

要做你想做的事,你必须走dom并更新文本节点的值(仅限)。在live copy中有一个示例,包含完整代码和this other answer here on Stack Overflow。你只需要改变handleText函数正在做的事情,你就可以了。