相关疑难解决方法(0)

onbeforeunload事件是否会在google chrome扩展程序中触发popup.html?

我正在编写带有弹出窗口和背景页面的Google Chrome扩展程序.弹出窗口订阅了后台生成的某些事件,我想在弹出窗口消失时取消订阅这些事件.但是,我没有看到从弹出窗口生成onbeforeunload或onunload事件.这些事件被解雇了吗?如果没有,关于如何捕捉弹出窗口的任何想法关闭?

google-chrome onbeforeunload google-chrome-extension

17
推荐指数
2
解决办法
5526
查看次数

Chrome 扩展程序:检测弹出窗口何时关闭

对于我的 chrome 扩展,我想在 browserAction 弹出窗口关闭时执行一个操作。我知道发生这种情况时不会触发任何内置事件。我发现这个建议打开与后台脚本的连接,然后使用连接的port.onDisconnect事件来检测弹出窗口是否正在关闭。

但是,当弹出窗口关闭时,我在后台脚本的开发人员控制台中看到以下错误:

(BLESSED_EXTENSION context for glkehflnlfekdijfhacccflbffbjhgbd) extensions::messaging:102: Uncaught TypeError: Cannot read property 'destroy_' of undefined{TypeError: Cannot read property 'destroy_' of undefined
   at PortImpl.destroy_ (extensions::messaging:102:37)
   at dispatchOnDisconnect (extensions::messaging:322:29)}
Run Code Online (Sandbox Code Playgroud)

我使用的脚本详述如下。

你能看出我哪里出错了吗?


清单文件

{ "manifest_version": 2

, "name": "Detect when popup closes"
, "version": "0.1"

, "browser_action": {
    "default_icon": "popup.png"
  , "default_popup": "popup.html"
  }

, "background": {
    "scripts": [
      "background.js"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

弹出窗口.html

<!DOCTYPE html>
<body>
  <h1>Test</h1>

  <script src="popup.js"></script>  
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

弹出窗口.js

var port …
Run Code Online (Sandbox Code Playgroud)

popup google-chrome-extension

4
推荐指数
2
解决办法
3785
查看次数