Chrome 分机不规则换词
Chrome Extension changes words irregularly
我尝试做一个扩展,找到所有说 "found" 的词,并用 "found" 替换它们只是为了测试。它有时会更改 1/2 个单词,有时会更改所有单词,有时 none。
像这样:
http://i.imgur.com/H7H7X0r.png
在网站上按下新日期后:
http://i.imgur.com/WXRz7ch.png
我认为这是因为网站更新或加载了新的 "instances" 词。有没有办法让脚本每秒更新一次?再次替换单词。
清单:
{
"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);
我尝试做一个扩展,找到所有说 "found" 的词,并用 "found" 替换它们只是为了测试。它有时会更改 1/2 个单词,有时会更改所有单词,有时 none。
像这样:
http://i.imgur.com/H7H7X0r.png
在网站上按下新日期后:
http://i.imgur.com/WXRz7ch.png
我认为这是因为网站更新或加载了新的 "instances" 词。有没有办法让脚本每秒更新一次?再次替换单词。
清单:
{
"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);