用于替换字词的Chrome扩展程序在Facebook上无效

时间:2017-01-14 05:10:02

标签: javascript facebook google-chrome

我一直试图找出答案,大约一个小时了,现在找不到任何东西。我正在创建一个Chrome扩展程序,将“希拉里克林顿”替换为“唐纳德特朗普”,它适用于除Facebook以外的所有网站。它适用于搜索时显示的人名,但不适用于任何帖子。我的代码:

walk(document.body);

function walk(node) 
{
    var child, next;

    switch ( node.nodeType )  
    {
        case 1:  // Element
        case 9:  // Document
        case 11: // Document fragment
            child = node.firstChild;
            while ( child ) 
            {
                next = child.nextSibling;
                walk(child);
                child = next;
            }
            break;

        case 3: // Text node
            handleText(node);
            break;
    }
}

function handleText(textNode) 
{
    var v = textNode.nodeValue;
    var z = textNode.nodeValue.nodeValue;

    v = v.replace(/\bHillary Clinton\b/gi, "Donald Trump");
    textNode.nodeValue = v;
}

我的清单:

{
"manifest_version": 2,
    "name": "Hillary Trump",
    "description": "CHANGE THIS!!!",
    "version": "1.0",
    "content_scripts": [
        {
            "matches": [
                "*://*/*",
                "https://*.facebook.com/*"
            ],
            "js": [
                "jquery.js",
                "content2.js"
            ],
            "run_at": "document_end"
        }
    ],
    "icons": { "16": "icon16.png",
           "48": "icon48.png",
          "128": "icon128.png" },
    "browser_action": {
        "default_popup": "popup.html"
      }
}

2 个答案:

答案 0 :(得分:0)

像这样使用Mutation Observer

{{1}}

答案 1 :(得分:0)

我已经创建了一个简单的更新工作 您需要做的就是将整个事物包含在下面的setInterval中:

window.setInterval(function(){
  // ADD CODE HERE!!
}