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