繁体   English   中英

Chrome扩展程序不定期更改单词

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM