收听Firefox WebExtension侧边栏关闭

问题描述 投票:1回答:2

我正在使用侧边栏处理WebExtension。

侧边栏打开时,扩展程序会在当前选项卡上执行某些操作。当它关闭时,我想恢复这些操作。

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

addeventlistener firefox-webextensions firefox-sidebar
2个回答
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
投票

侧边栏是一个几乎定期的独立网页,您可以在其中收听常见的JS活动。为了知道侧边栏何时关闭,您可以在侧边栏的JavaScript中使用beforeunload

window.addEventListener('beforeunload', (event) => {
  console.log('Sidebar is closing!');
  // Do stuff
});
© www.soinside.com 2019 - 2024. All rights reserved.