基于chrome.webRequest的chrome.storage的返回值

时间:2015-06-05 01:20:07

标签: google-chrome-extension webrequest

保存并恢复选项!

我试图通过WebRequest阻止某些网站,但是当这个虚假的ckeckbox甚至仍然阻止该网站时,任何人都可以提供帮助,这就是我所拥有的代码

Options.js

function save_options(){
  var blockurl_1 = document.getElementById("blockurl_1").checked;
  var blockurl_2 = document.getElementById("blockurl_2").checked;
  chrome.storage.sync.set({
    blockurl_1: blockurl_1,
    blockurl_2: blockurl_2
  }, function() {
    var status = document.getElementById('status');
    status.textContent = 'Block';
  });
}

function restore_options() {
  chrome.storage.sync.get({
    blockurl_1: false,
    blockurl_2: false
  }, function(items) {
    document.getElementById('blockurl_1').checked = items.blockurl_1;
    document.getElementById('blockurl_2').checked = items.blockurl_2;
  });
}

document.addEventListener('DOMContentLoaded', restore_options);
var checkcontent = document.getElementsByClassName("save")[0];
    checkcontent.addEventListener("click",save_options);

我自己需要这样做,但是使用chrome.storage

chrome.webRequest.onBeforeRequest.addListener(function(details) {
    return {
        cancel: ( localStorage["block_chat_seen"] == 'true' ) ? true : false
    }
}, { urls: ['*://*.facebook.com/'] }, ['blocking'])

...

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        chrome.storage.sync.get(null, function(items) {

            if (items.blockurl_1) {
                chrome.webRequest.onBeforeRequest.addListener(function(details) { 
                    var state = (blockurl_1 === true) ? 'true' : 'false';
                    return { cancel: state }; }, {
                        urls: ["*://www.google.com.co/*"]
                    },
                ["blocking"]);
            }

            if (items.blockurl_2) {
                chrome.webRequest.onBeforeRequest.addListener(function(details) { 
                    var state = (blockurl_2 === true) ? 'true' : 'false';
                    return { cancel: state }; }, {
                        urls: ["*://www.youtube.com.co/*"]
                    },
                ["blocking"]);
            }
        });
    });

1 个答案:

答案 0 :(得分:0)

您每次添加听众。

在添加新的之前,您需要清除现有的。