2013-04-03 191 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 
});