onbeforeunload事件是否会在google chrome扩展程序中触发popup.html?

pra*_*een 17 google-chrome onbeforeunload google-chrome-extension

我正在编写带有弹出窗口和背景页面的Google Chrome扩展程序.弹出窗口订阅了后台生成的某些事件,我想在弹出窗口消失时取消订阅这些事件.但是,我没有看到从弹出窗口生成onbeforeunload或onunload事件.这些事件被解雇了吗?如果没有,关于如何捕捉弹出窗口的任何想法关闭?

Pau*_*uan 31

浏览器操作弹出窗口不会触发"beforeunload" .相信我,我试过了.然而,"卸载"应该被正确解雇,所以请听.

实际上,我有一个类似的系统,它允许你使用addEventListener附加事件,并在unload事件触发时自动清理它们.

这里有一个小小的提示:显然你不能使用console.log,因为当卸载事件发生时,它已经太晚了.但是,你可以这样做:

var background = chrome.extension.getBackgroundPage();

addEventListener("unload", function (event) {
    background.console.log(event.type);
}, true);
Run Code Online (Sandbox Code Playgroud)

通过使用上面的代码,您可以打开后台页面的控制台,它应该显示正确触发了unload事件.


Ant*_*ier 1

我也遇到过类似的问题。就我而言,我已将焦点设置在弹出页面中的元素上。因此,当弹出窗口关闭时,元素失去焦点,我可以捕获模糊事件。