簡體   English   中英

如何關閉 Chrome 擴展程序中的 onCreated 事件偵聽器?

[英]how do i turn off onCreated event listener in Chrome extension?

我有一個簡單的 chrome 擴展,可以自動關閉新標簽。 目標是通過單擊瀏覽器圖標來打開/關閉擴展程序。 我可以激活它,但是我無法將其關閉。 這是我到目前為止所擁有的:

var enable=false;
chrome.browserAction.onClicked.addListener(function (tab) {
  enable = enable ? false : true;
  if(enable){
    chrome.tabs.onCreated.addListener(function (tab) {
      chrome.tabs.remove(tab.id);
    });
    chrome.browserAction.setIcon({path: 'on.png'});
  }
  else{
    chrome.browserAction.setIcon({path: 'icon.png'});
    // I'm not sure what to put here
  }
});

我有 2 個不同的圖像來表示工作正常的開/關狀態,但是聽眾仍然處於活動狀態。 我試過 removeListener 無濟於事。 任何幫助將非常感激!

您必須使用命名函數才能使用removeListener

function myListener(tab){
    chrome.tabs.remove(tab.id);
}

var enable=false;
chrome.browserAction.onClicked.addListener(function (tab) {
  enable = !enable;
  if(enable){
    chrome.tabs.onCreated.addListener(myListener);
    chrome.browserAction.setIcon({path: 'on.png'});
  }
  else{
    chrome.browserAction.setIcon({path: 'icon.png'});
    chrome.tabs.onCreated.removeListener(myListener);
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM