ホームページ  >  記事  >  ウェブフロントエンド  >  ブラウザの終了イベントを確実に検出し、保存されていないデータを処理するにはどうすればよいですか?

ブラウザの終了イベントを確実に検出し、保存されていないデータを処理するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-26 17:18:16863ブラウズ

How Can I Reliably Detect Browser Close Events and Handle Unsaved Data?

ブラウザ終了イベントの検出

通常の方法でブラウザ終了イベントを検出するのが困難ですか?この詳細なガイドでは、ウィンドウのクローズ、アンロード、またはアンロード前イベントの監視に役立つ包括的なソリューションを提供しますので、心配する必要はありません。

解決策

次のコード スニペットは、巧妙に対処しています。問題:

window.onbeforeunload = function (event) {
  var message = 'Important: Please click on \'Save\' button to leave this page.';
  if (typeof event == 'undefined') {
    event = window.event;
  }
  if (event) {
    event.returnValue = message;
  }
  return message;
};

$(function () {
  $("a").not('#lnkLogOut').click(function () {
    window.onbeforeunload = null;
  });
  $(".btn").click(function () {
    window.onbeforeunload = null;
  });
});

この解決策には、onbeforeunload イベント ハンドラーが組み込まれています。ブラウザウィンドウが閉じる前にトリガーされます。メッセージ変数はカスタム プロンプトを表示し、ページを離れる前にデータを保存するようユーザーに通知します。

特に、ページ上の特定の要素をクリックしたときにプロンプ​​トが表示されないようにする補助関数が含まれています (この場合、 #lnkLogOut 要素と .btn 要素)。

Firefox の互換性に関する考慮事項

この間コードは通常、他のブラウザでも機能しますが、Firefox ではカスタム プロンプトが表示されない場合があることに注意してください。このような場合、リンクされたスレッドで説明されているように、代替方法を検討する必要がある場合があります。

以上がブラウザの終了イベントを確実に検出し、保存されていないデータを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。