更改滤镜后如何更新chrome.webRequest.onBeforeRequest

时间:2019-05-30 00:50:24

标签: javascript google-chrome-extension

我创建了一个小型的Google Chrome扩展程序,该扩展程序应阻止从阵列到某些网站的请求。单击某些按钮后,应该删除网站列表中的一项,并且应该可以从浏览器中获得它,但事实并非如此。

我试图创建一个侦听器(chrome.webRequest.onBeforeRequest.addListener()),该侦听器将带有站点的数组作为过滤器。然后,我从数组中删除了一个元素,并删除了监听器(chrome.webRequest.onBeforeRequest.removeListener())。然后用一组新站点创建一个新的侦听器。

let listURL = [
    "*://*.facebook.com/*",
    "*://*.yandex.ru/*"
];

function blockRequest(details) {
    return {cancel: true};
}

function updateFilters(urls) {
    if(chrome.webRequest.onBeforeRequest.hasListener(blockRequest)) {
        chrome.webRequest.onBeforeRequest.removeListener(blockRequest);
    }
    chrome.webRequest.onBeforeRequest.addListener(blockRequest, {
        urls: urls
    }, ['blocking']);
    chrome.webRequest.handlerBehaviorChanged();
}

updateFilters(listURL);

document.getElementById('delete').addEventListener('click', function(e) {
    e.preventDefault();
    updateFilters(["*://*.yandex.ru/*"]);
});

我希望在单击按钮(#delete)之后,可以从浏览器访问http://facebook.com

0 个答案:

没有答案