我的扩展打开了一系列额外的窗口。当用户关闭主 Firefox 窗口时,我希望这些窗口关闭。我知道您可以检测到选项卡何时关闭(也许我应该只寻找“最终”选项卡关闭?)但我想知道“所有选项卡”何时关闭。
简而言之,我如何检测 Firefox 主窗口何时从扩展程序中关闭?
我的扩展打开了一系列额外的窗口。当用户关闭主 Firefox 窗口时,我希望这些窗口关闭。我知道您可以检测到选项卡何时关闭(也许我应该只寻找“最终”选项卡关闭?)但我想知道“所有选项卡”何时关闭。
简而言之,我如何检测 Firefox 主窗口何时从扩展程序中关闭?
你可以监听卸载事件。
如果您的脚本在所有类型的窗口上运行,则检查 url 是否为浏览器窗口。
window.addEventListener('unload', function(event) {
if (event.target.location.href !== 'chrome://browser/content/browser.xul') {
return;
}
// do you stuff...
}, false);
我找到了一种解决方案,尽管它实际上并不监听特定事件。相反,我们设置了一个间隔来检查选项卡容器是否仍然可用。
setInterval(function() {
if (typeof gBrowser.mTabContainer === 'undefined') {
// Rest of your code...
}
}, 500);
如果有更清洁的方式来做到这一点,我会很高兴看到它。