6

对于我的 chrome 和 firefox 扩展,我需要一种方法来确定后台脚本是否已卸载或正在卸载。发生这种情况时是否会触发事件?我浏览了 stackoverflow 上的多个链接,甚至浏览了一些官方的 chromium bug 链接,但找不到具体的答案。后台脚本不支持 beforeunload 并且关闭窗口并不能保证浏览器已关闭,因为如果扩展程序具有“后台”权限,则后台脚本仍将在后台运行。我现在能做什么?

4

1 回答 1

2

最接近的是chrome.runtime.onSuspend,但不能保证在上下文关闭之前允许您多长时间。请注意,WebExtensions 尚不支持此功能。该文件明确指出:

在卸载之前发送到事件页面。这为扩展提供了一些清理的机会。请注意,由于页面正在卸载,因此在处理此事件时启动的任何异步操作都不能保证完成

一般来说,您不能在事件/背景页面卸载上做太多事情,并且应该使您的代码对突然卸载具有鲁棒性。对于某些关闭,此事件甚至可能不会触发。

于 2016-04-13T11:29:00.470 回答