Chrome扩展程序代码可在弹出窗口中打开或关闭我的扩展程序

时间:2018-09-11 22:44:29

标签: javascript html google-chrome-extension manifest.json

我正在构建我的第一个chrome扩展程序,而事情几乎完成了!但是,我陷入了最后一个问题,即创建一个简单的html切换开关以暂时禁用扩展。基本上,它的功能类似于广告拦截器,但它不是拦截广告,而是拦截网站并将其重定向到特定的网址。

这是我用来尝试执行此操作的代码,但是由于某些原因,它将切换“启用禁用”,但不会关闭重定向。现在,我只希望能够打开和关闭该应用程序的功能。

manifest.json

 {
    "manifest_version": 2,
    "name": "Purge",
    "description": "Why Use Anything But Google?",
    "version": "1.0.0",
    "icons": {"128":"icon_128.png"},
    "browser_action": {"default icon": "icon.png",
    "default_popup": "popup.html"},
    "permissions": ["webRequest", "webRequestBlocking", "http://*/", "https://*/"],
    "background": {"scripts": ["blocked_domains.js", "background.js"]}
}

popup.html

<html>
<head>
        <script src="toggle.js"></script>
</head>
<body>
    <h3>PURGE!</h3>
    <input type="button" id="toggle_button" value="Disable" />
    <hr>
</body>
</html>

background.js

var enabled = true;
chrome.webRequest.onBeforeRequest.addListener(
    function(info) {
      var url = "https://www.google.com/";
      return {redirectUrl: url};
    },
    {urls: blocked_domains},
    ["blocking"]);

toggle.js

window.onload = function () {
    function updateLabel() {
        var enabled = chrome.extension.getBackgroundPage().enabled;
        document.getElementById('toggle_button').value = enabled ? "Disable" : "Enable";
    }
    document.getElementById('toggle_button').onclick = function () {
        var background = chrome.extension.getBackgroundPage();
        background.enabled = !background.enabled;
        updateLabel();
    };
    updateLabel();
}

1 个答案:

答案 0 :(得分:1)

好吧,您正在切换布尔enabled和按钮以及它,但是无论值如何,您仍然会重定向。

onBeforeRequest侦听器中,检查enabled的值是否为true的{​​{1}},然后再决定重定向:

false