我正在搞乱Safari扩展程序,我希望我的扩展程序能够响应用户打开或关闭标签。
我有扩展程序注入一个脚本,该脚本在新选项卡打开时运行,并通知全局页面打开一个新选项卡。我希望脚本在选项卡关闭时也通知全局页面。为此,我将注入的脚本设置为window.onbeforeunload
函数以调用safari.self.tab.dispatchMessage
。这有效,但问题是标签关闭,Javascript在消息通过之前被杀死。例如,如果我在alert
之后添加dispatchMessage
以阻止标签关闭,直到用户点击“确定”,消息就会很好,但这显然不是一个非常好的用户体验。
有没有办法在标签关闭之前买一点额外的时间,还是有更好的功能来覆盖这个或什么的?
答案 0 :(得分:0)
问题在于保存一个(canLoad
)的所有消息都是异步的。 IMO,canLoad
本身就是一个黑客攻击,但是当我出于某种原因迫切需要同步消息时,我已经有效地使用了它。我问了analogous question一段时间,这可能有助于说明canLoad
解决方案/黑客。