[英]Chrome Extension changes words irregularly
我尝试进行扩展,以查找所有说出“ found”的单词,并仅将它们替换为“ 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);
}
}
}
}
是的,只需将代码放入函数中,然后使用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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.