2

我在搞乱 Safari 扩展,我希望我的扩展能够响应用户打开或关闭选项卡。

我让扩展程序注入了一个脚本,该脚本在新选项卡打开时运行,并通知全局页面有一个新选项卡打开。我希望脚本在选项卡关闭时也通知全局页面。为此,我让注入的脚本将window.onbeforeunload函数设置为调用safari.self.tab.dispatchMessage. 这可行,但问题是选项卡关闭并且 Javascript 在消息通过之前被终止。例如,如果我在用户单击“确定”之前添加一个alertdispatchMessage防止选项卡关闭,则消息可以正常通过,但这显然不是一个很好的用户体验。

有没有办法在标签关闭之前购买一些额外的时间,或者是否有更好的功能来覆盖这个或其他东西?

4

1 回答 1

0

问题是保存一个 ( canLoad) 的所有消息都是异步的。IMO,这canLoad本身就是一个 hack,但是当我出于某种原因迫切需要同步消息传递时,我已经有效地使用了它。不久前我问了一个类似的问题,这可能有助于说明canLoad解决方案/黑客。

于 2010-08-18T16:26:05.860 回答