首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >听火狐WebExtension侧边栏关闭

问听火狐WebExtension侧边栏关闭
EN

Stack Overflow用户
提问于 2018-06-25 09:56:24
回答 2查看 188关注 0票数 1

我正在使用侧栏编写一个WebExtension。

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-12 12:27:18

我将GnxR的想法改编如下:

extension/page/sidebar.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <body>
        <div id="panel"></div>
        <script src="static.js"></script>
    </body>
</html>

extension/page/static.js

代码语言:javascript
复制
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
});

当关闭扩展(从交叉栏和以编程方式)时,我在浏览器控制台中得到以下内容:

代码语言:javascript
复制
Sidebar is hiding! static.js:6:3
Sidebar is unloaded! static.js:10:3 

因此,似乎可以同时使用pagehide和unload事件,但从未触发beforeunload。

票数 3
EN

Stack Overflow用户

发布于 2018-06-25 09:56:24

侧栏是一个正常的独立网页,您可以在其中收听通常的JS事件。为了知道侧边栏何时关闭,可以在侧栏的卸载前中使用JavaScript:

代码语言:javascript
复制
window.addEventListener('beforeunload', (event) => {
  console.log('Sidebar is closing!');
  // Do stuff
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51020719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档