等待在window.onbeforeunload中发送消息?

时间:2010-08-14 18:23:42

标签: javascript safari safari-extension

我正在搞乱Safari扩展程序,我希望我的扩展程序能够响应用户打开或关闭标签。

我有扩展程序注入一个脚本,该脚本在新选项卡打开时运行,并通知全局页面打开一个新选项卡。我希望脚本在选项卡关闭时也通知全局页面。为此,我将注入的脚本设置为window.onbeforeunload函数以调用safari.self.tab.dispatchMessage。这有效,但问题是标签关闭,Javascript在消息通过之前被杀死。例如,如果我在alert之后添加dispatchMessage以阻止标签关闭,直到用户点击“确定”,消息就会很好,但这显然不是一个非常好的用户体验。

有没有办法在标签关闭之前买一点额外的时间,还是有更好的功能来覆盖这个或什么的?

1 个答案:

答案 0 :(得分:0)

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