我在搞乱 Safari 扩展,我希望我的扩展能够响应用户打开或关闭选项卡。
我让扩展程序注入了一个脚本,该脚本在新选项卡打开时运行,并通知全局页面有一个新选项卡打开。我希望脚本在选项卡关闭时也通知全局页面。为此,我让注入的脚本将window.onbeforeunload
函数设置为调用safari.self.tab.dispatchMessage
. 这可行,但问题是选项卡关闭并且 Javascript 在消息通过之前被终止。例如,如果我在用户单击“确定”之前添加一个alert
以dispatchMessage
防止选项卡关闭,则消息可以正常通过,但这显然不是一个很好的用户体验。
有没有办法在标签关闭之前购买一些额外的时间,或者是否有更好的功能来覆盖这个或其他东西?