私は次のコードを使用しています(純粋にテスト目的で):
$(window).bind('unload', function() {alert('unload!')});
$(window).unload(function () {alert(".unload()")});
2 つの質問があります。
なぜ機能するのですか?つまり、2 つのメッセージが表示されるのはなぜですか? 2 つのイベント リスナーを同じ DOM オブジェクトにアタッチしても効果がないことをどこかで読みました。2 番目以降のリスナーは無視されます。
なぜ Firefox は両方のメッセージを標準的なシステムのようなメッセージ ボックスに表示するのに、ページの使用中に発生する他のすべてのメッセージ (アラートも含む) は常にこの見苦しいタイトルのない迷惑なメッセージ ボックスに表示されるのですか?みたいなこと?
この質問へのコメントで書いたように
alert()
、 (Chrome / WebKitによる)ブロックunload
は良い考えですか?ページを更新したり、別のページに移動した直後に、コンソール (少なくとも Chrome では) がクリアされるため、アラートを console.log (そこで提案されているように) に置き換えても、あまり有用な効果は得られません。メッセージが実際に消える数ミリ秒前にコンソールに書き込まれたメッセージの痕跡を見ることができるので、むしろ役に立たないと思います。アンロードでアラートを無効にすることは最善の考えではありません。いくつかの深刻なテストを行うのは難しく、「ひどい」ページは、アラート (jQuery UI、一部の div など) を使用せずに独自の「迷惑な」メッセージを表示することで簡単に回避できます。
これらの質問は、すべての答えを知りたいという私の空腹を満たすためのものです。:] だから、それを真剣に扱わないでください (いくつかの追加のテスト、フィドルの例などを行うなど)。ただ、これについてあなたが知っていること、または感じていることを書いてください。