簡體   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