【发布时间】:2016-04-17 06:27:09
【问题描述】:
我正在尝试替换 google chrome 上的单词,但遇到了问题。我能够成功替换特定的单词,但它会杀死相关的 html 链接。
我怎样才能使链接保持活动状态并仍然替换文本?
这是我的 chrome 扩展内容脚本中的代码:
wordDict = {"the":"piano","and":"Hello", "a":"huh?"};
for (word in wordDict) {
document.body.innerHTML = document.body.innerHTML.replace(
new RegExp('\\b' + word + '\\b',"gi"), wordDict[word]
);
};
【问题讨论】:
-
用innerText代替innerHTML怎么样?
-
通过简单地遍历 DOM 树。与其进行脑死的简单正则表达式替换,不如查看树中每个节点的
.innerTextmember 并替换 there 中的文本。 (a) 它不会触及链接目标,(b) 它不会导致任何事件侦听器被丢弃。 -
如果你可以使用 jQuery..
$('a').text("Anything");你也可以运行jQuery.each()迭代器 -
innerText 似乎破坏了整个网站,只是吐出一堆未格式化的文本——这不是我想要的。
-
我确实加载了 jquery。给我一点时间来了解您的 jquery 代码的含义,以便我可以针对我的问题对其进行格式化。
标签: javascript text replace google-chrome-extension content-script