我正在尝试编写一个简单的chrome扩展程序,当我点击它时会阻止twitter。
这是我的background.js:
var enabled = true;
const global_blocked_urls = ["https://*.chess.com/*"];
chrome.webRequest.onBeforeRequest.addListener(
(details) => {
console.log(global_blocked_urls); //prints as expected
console.log("blocking:", details.url);
return {
cancel: enabled
};
}, {
"urls": global_blocked_urls
}, ["blocking"]
);
chrome.runtime.onMessage.addListener(block_twitter);
function block_twitter(msg) {
var twitter_regex = "https://*.twitter.com/*";
global_blocked_urls.push(twitter_regex);
console.log(global_blocked_urls);
console.log(msg);
}
我在全局列表中持有我不想访问的链接列表。
问题:首先触发block_twitter
侦听器,然后访问新网页 - 接下来会触发onBeforeRequest
侦听器。当我打印回调到chrome.webRequest.onBeforeRequest.addListener
内的全局列表时,它打印出我希望它打印出来的内容。
但是:它仍允许我访问twitter,尽管正则表达式的url url是全球列表中的。
如何调试/修复此问题?