0

文档指出“Safari 5.1 会在激活时向窗口或选项卡发送一个“激活”事件”。我在全局页面中使用以下代码来捕获此事件:

function onWindowOrTabSwitched(event) {
     alert("onWindowOrTabSwitched");
}

safari.application.addEventListener("activate", onWindowOrTabSwitched, true);

当我从一个选项卡切换到另一个选项卡时会显示警报,但在 Safari 窗口之间切换时,大多数情况下没有任何反应。是我做错了什么还是Safari(6.0.2)没有在窗口之间切换时调度这个事件?

4

1 回答 1

0

好的,真正的问题似乎是,当我创建一个新的 Safari 窗口时,我在“激活”事件期间从全局页面发送到注入脚本的消息确实到达了,但在任何其他情况下都没有。“safari.application.activeBrowserWindow.activeTab.page”似乎在创建新窗口的激活事件期间被填充,但在加载 topsites:// 页面后立即被清除。我在注入的脚本中实现了检查,以查看它是否被注入到 http(s) 页面或解决此问题。

因此,activate 事件在每次应该触发时都会触发,只有在刚刚打开新窗口并且这是我的问题的情况下才可能向 Topsite 发送消息。

于 2013-02-04T22:44:01.767 回答