繁体   English   中英

使用 webRequest API 通过删除已阻止它的侦听器来解除阻止 url

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM