好的,您的代码有两个问题:
- 你的manifest.json没有指定
background.js
,所以该代码没有运行。
- 你实际上并没有调用
updateFilters
随时随地发挥作用。
我纠正了这两个问题,这个扩展对我来说效果很好,它按预期阻止了 Facebook。
一般来说,我建议您多阅读一些文档 https://developer.chrome.com/extensions/getstarted当您尝试开始时进行扩展,尤其是以下部分背景页 https://developer.chrome.com/extensions/background_pages and 活动页面 https://developer.chrome.com/extensions/event_pages.
manifest.json:(请注意,我无权访问您的弹出 html/css,因此我必须从清单中删除该部分)。
{
"name": "StudyBuddy",
"description": "Helps you study by blocking distracting websites",
"version": "2.0",
"permissions": [
"webRequestBlocking",
"webRequest",
"activeTab",
"tabs",
"http://*/*",
"https://*/*"
],
"background" : {
"scripts": [
"background.js"
]
},
"manifest_version": 2
}
背景.js
console.log("Loaded extension");
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: ["*://*.facebook.com/*", "*://*.facebook.net/*"]}, ['blocking']);
}
updateFilters();