2013-04-03 192 views
16

我已經嘗試過window.unload,window.beforeunload等 我正在尋找一種方式,一旦彈出關閉通知我的背景頁。Chrome擴展程序彈出窗口關閉時是否有事件?

+0

你試過['chrome.tabs.onRemoved'(http://developer.chrome.com/extensions/tabs.html#event-onRemoved)也許[ 'chrome.windows.onRemoved'](http://developer.chrome.com/extensions/windows.html#event-onRemoved)如果它算作一個窗口? – BeardFist 2013-04-03 22:12:45

+0

它不算作一個窗口。 – ebi 2013-04-04 02:24:30

+1

參見:[?是否onbeforeunload事件觸發的谷歌Chrome擴展popup.html(http://stackoverflow.com/q/2315863/405550) – Zaz 2016-10-17 14:39:00

回答

15

你可以試試這個。連接到你的背景頁面chrome.runtime.connect(或chrome.extension.connect鉻26之前)和port.onDisconnect將在你的後臺頁面時彈出窗口被關閉被解僱。

+0

是啊,這就是我在想,這應該做的伎倆,謝謝。 – ebi 2013-04-04 02:26:55

+0

當用戶停止使用擴展時刪除/刪除擴展時觸發'port.onDisconnect',彈出窗口關閉。 – Paralellos 2017-08-15 02:54:47

2

目前還沒有辦法弄清楚當瀏覽器彈出行動是 封閉,window.unonload立即觸發時彈出完成 加載,而不是當它關閉。這裏有一個錯誤crbug.com/31262。可

三變通是well described here。它們包括port.onDisconnect技巧,並定期從彈出窗口或背景頁面彙集chrome.extension.getViews()

+0

這是僅供鏈接使用的答案。 – msangel 2018-02-13 18:07:34

+0

感謝您的通知,擴大。 – user7610 2018-02-13 21:06:51

0

終於找到了解決辦法。把下面的代碼background.js/eventPage.js

chrome.windows.onFocusChanged.addListener(function(window) { 
    //handle close event 
});