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) ページに挿入されているかどうかを確認するか、この問題を解決しました。

そのため、アクティブ化イベントは発生するたびに発生します。トップサイトにメッセージを送信できるのは、新しいウィンドウが開かれたばかりで、それが私の問題だった場合のみです。

于 2013-02-04T22:44:01.767 に答える