2011-07-27 94 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函數在做什麼,而且你很好。