我的chrome扩展程序如何自动运行?

时间:2016-11-30 11:59:20

标签: javascript json google-chrome google-chrome-extension

在此扩展程序中,如果我点击扩展程序按钮,如果当前网址与http://example.com/*https://example.com/*匹配,则应将其重定向到http://NewDomain/*https://NewDomain/*这样的新域

但我希望此扩展名扫描选项卡URL并在以下条件下自动执行重定向:

  1. 如果创建了新标签页或

  2. 如果当前标签网址更改

  3. 这是我的代码:

    的manifest.json

    {
        "manifest_version": 2,
    
        "name": "My Extension",
        "description": "Redirect example.com to NewDomain",
        "version": "0.1",
    
        "permissions":
        [
            "activeTab",
            "tabs",
            "background"
        ],
    
        "browser_action":
        {
            "default_icon": "icon.png"
        },
    
        "content_scripts":
        [
          {
              "matches": ["http://*/*", "https://*/*"],
              "js": ["content.js"]
          }
        ]
    }
    

    scripts.js中

    var current_url = tab.url.split('/');
    
    if(current_url[2] == "example.com")
    {
        current_url[2] = "NewDomain";
    }
    
    var new_url = current_url.join('/');    
    console.log('New tab url: ' + new_url);
    document.location.href = new_url;
    

    但它不起作用,我应该应用哪些更改?

1 个答案:

答案 0 :(得分:0)

改为使用内容脚本并删除browser_action。

然后你可以使用document.location.href =“urlToRedirectTo”;

网址匹配可以在清单

中完成

您有两种选择。在清单中指定要匹配的url或匹配每个url并检查内容脚本中的url。

例如,此清单将匹配所有网址:

{
"manifest_version": 2,

"name": "whatever",
"description": "blah",
"version": "1.0",

"content_scripts": [
    {
        "matches": ["http://*/*", "https://*/*"],
        "js": ["content.js"]
    }
],

"permissions": [
    "activeTab"
]
}

在content.js中,您可以执行以下操作:

if (document.location.href == "theUrlImLookingFor")
    document.location.href = "theUrlThatIRedirectTo";