听Firefox WebExtension侧栏关闭

时间:2018-06-25 09:56:25

标签: addeventlistener firefox-webextensions firefox-sidebar

我正在使用边栏来开发WebExtension。

打开侧边栏后,扩展程序将在当前选项卡上执行一些操作。关闭时,我要还原这些操作。

这可能吗?我没有看到像browser.sidebarAction.addEventListener这样的方法。

2 个答案:

答案 0 :(得分:2)

我在以下方面修改了GnxR的想法:

extension/page/sidebar.html

<!DOCTYPE html>
<html>
    <body>
        <div id="panel"></div>
        <script src="static.js"></script>
    </body>
</html>

extension/page/static.js

window.addEventListener('beforeunload', (event) => {
  console.log('Sidebar will be closed!');
  // Do stuff
});
window.addEventListener('pagehide', (event) => {
  console.log('Sidebar is hidden!');
  // Do stuff
});
window.addEventListener('unload', (event) => {
  console.log('Sidebar is unloaded!');
  // Do stuff
});

在关闭扩展程序时(从交叉栏和以编程方式),在浏览器控制台中都显示以下内容:

Sidebar is hiding! static.js:6:3
Sidebar is unloaded! static.js:10:3 

因此,看来pagehideunload事件都可以使用, 但是beforeunload从未被解雇。

答案 1 :(得分:1)

侧边栏是一个alsmot-regular独立的网页,您可以在其中收听常见的JS事件。为了知道边栏何时关闭,您可以在边栏的JavaScript中使用beforeunload

window.addEventListener('beforeunload', (event) => {
  console.log('Sidebar is closing!');
  // Do stuff
});