我正在學習Chrome擴展的事件頁面,並且根據文檔,這些腳本只會在需要時加載。然後我發現Google Mail Checker的活動頁面腳本將添加事件偵聽器:在Chrome擴展的事件頁面中重複添加事件偵聽器可以嗎?
// Some declarations
chrome.browserAction.onClicked.addListener(goToInbox);
// ...
我寫事件腳本:
chrome.tabs.create({url: 'https://www.google.com'});
function onClickListener() {
chrome.tabs.create({url: 'https://www.bing.com'});
}
chrome.browserAction.onClicked.addListener(onClickListener);
後,我重新裝我的分機,谷歌的新標籤。 com按預期開放。幾秒鐘後,Chrome的任務管理器中我的擴展程序就沒有了,我點擊了擴展名圖標。然後,google.com和bing.com都會打開!所以我知道這整個腳本會重新加載。
現在回頭看看Google Mail Checker的腳本。一旦腳本加載後,監聽器會重複添加,所以我的問題是:可以重複添加監聽器嗎?如果在加載腳本時偵聽器的行爲將從A更改爲B,那麼將在第二次加載A或B時觸發哪一個?
如果所有偵聽器都被銷燬,chrome如何知道腳本何時應該重新加載?我猜chrome有一個由擴展註冊的事件列表,當事件被觸發時,chrome會重新加載腳本並在事件監聽器存在的情況下調用事件監聽器。 – Perqin