听 Firefox WebExtension 侧边栏关闭
Listen to Firefox WebExtension sidebar closing
我正在使用边栏开发 WebExtension。
当侧边栏打开时,扩展程序会在当前选项卡上执行一些操作。当它关闭时,我想恢复这些操作。
这可能吗?我没有看到像 browser.sidebarAction.addEventListener
.
这样的方法
侧边栏是一个alsmot-regular的独立网页,里面可以收听常用的JS事件。为了知道侧边栏何时关闭,您可以在侧边栏的 JavaScript:
中使用 beforeunload
window.addEventListener('beforeunload', (event) => {
console.log('Sidebar is closing!');
// Do stuff
});
我在下面改编了 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
因此似乎pagehide
和unload
事件都可以使用,
但是 beforeunload
永远不会被解雇。
我正在使用边栏开发 WebExtension。
当侧边栏打开时,扩展程序会在当前选项卡上执行一些操作。当它关闭时,我想恢复这些操作。
这可能吗?我没有看到像 browser.sidebarAction.addEventListener
.
侧边栏是一个alsmot-regular的独立网页,里面可以收听常用的JS事件。为了知道侧边栏何时关闭,您可以在侧边栏的 JavaScript:
中使用 beforeunloadwindow.addEventListener('beforeunload', (event) => {
console.log('Sidebar is closing!');
// Do stuff
});
我在下面改编了 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
因此似乎pagehide
和unload
事件都可以使用,
但是 beforeunload
永远不会被解雇。