[英]Unblocking url using webRequest API by removing the listener which has blocked it
从这篇文章中得到线索后
我正在尝试删除一个侦听器(它使用 webRequest api 阻止了 URL)以解除阻止 URL。 但我无法成功删除它,我正在做这样的事情......
阻止 URL
chrome.webRequest.onBeforeRequest.addListener( function blockListener (details) {
return {
cancel: true
};
},{ urls: [url], types: [ 'main_frame' ] }, ['blocking'] );
解锁 URL
chrome.webRequest.onBeforeRequest.removeListener(blockListener);
我究竟做错了什么?
当您添加侦听器以便将其作为参数传递时,您使用的是命名 function,此外,在您定义要从中删除侦听器的事件之后,您只传递要删除的侦听器,这应该是第二个参数. 然而,这不是正确的做法。 相反,您应该单独定义您的 function ,例如
function blockListener(details) {
// Your code
}
然后使用它来添加/删除侦听器。
下面的代码片段有一个带有内部文本的div
,您可以在其上单击 5 秒钟然后停止收听。 您可以尝试并在测试期间查看日志。
function clicked() { console.log("Clicked"); } document.getElementById("foo").addEventListener("click", clicked); setTimeout(function() { document.getElementById("foo").removeEventListener("click", clicked, false); console.log("No longer listening"); }, 5000);
<div id="foo">abcd</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.