我尝试制作一个扩展程序,找到所有单词“找到”并将其替换为“found”仅用于测试。它有时会改变1/2的单词,有时是全部,有时也不会。
像这样:
http://i.imgur.com/H7H7X0r.png
在网站上按下新日期后:
http://i.imgur.com/WXRz7ch.png
我认为这是因为网站更新或加载了该单词的新“实例”。有没有办法让脚本像每一秒一样更新?再次替换这个词。
清单:
{
"manifest_version": 2,
"name": "title",
"description": "description",
"version": "4.0",
"content_scripts": [
{
"matches": [
"*://*/*"
],
"js": [
"content.js"
],
"run_at": "document_idle"
}
]
}
content.js
var elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
for (var j = 0; j < element.childNodes.length; j++) {
var node = element.childNodes[j];
if (node.nodeType === 3) {
var text = node.nodeValue;
var replacedText = text.replace(/Turkiet/g, 'found');
if (replacedText !== text) {
element.replaceChild(document.createTextNode(replacedText), node);
}
}
}
}
答案 0 :(得分:0)
是的,只需将代码输入函数然后使用setInterval():
function replaceWord(){
var elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
for (var j = 0; j < element.childNodes.length; j++) {
var node = element.childNodes[j];
if (node.nodeType === 3) {
var text = node.nodeValue;
var replacedText = text.replace(/Turkiet/g, 'found');
if (replacedText !== text) {
element.replaceChild(document.createTextNode(replacedText),
node);
}
}
}
}
}
//Calls replaceWord() every second
setInterval(replaceWord,1000);