2

Safari の拡張機能をいじっています。ユーザーがタブを開いたり閉じたりしたときに拡張機能が応答するようにしたいと考えています。

新しいタブが開いたときに実行され、新しいタブが開いていることをグローバルページに通知するスクリプトを挿入する拡張機能があります。タブが閉じられたときに、スクリプトがグローバル ページにも通知するようにします。これを行うために、注入されたスクリプトでwindow.onbeforeunload関数を call に設定していますsafari.self.tab.dispatchMessage。これは機能しますが、問題はタブが閉じられ、メッセージが通過する前に Javascript が強制終了されることです。たとえば、ユーザーが [OK] をクリックするまでタブが閉じないように のalert後にを配置するdispatchMessageと、メッセージは正常に処理されますが、これは明らかにユーザー エクスペリエンスがあまり良くありません。

タブが閉じる直前に少し余分な時間を購入する方法はありますか、またはこれまたは何かをオーバーライドするためのより良い機能はありますか?

4

1 に答える 1

0

問題は、1 つを除くすべてのメッセージ ( canLoad) が非同期であることです。IMO、canLoadそれ自体は少しハックですが、何らかの理由で同期メッセージングがどうしても必要なときに効果的に使用しました。ソリューション/ハックを説明するのに役立つかもしれない類似の質問をしばらく前にしました。canLoad

于 2010-08-18T16:26:05.860 に答える