我创建了一个小型的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。