ホームページ >ウェブフロントエンド >jsチュートリアル >「ページを離れる」を実装するにはどうすればよいですか?従来のブラウザでは確認プロンプトが表示されますか?

「ページを離れる」を実装するにはどうすればよいですか?従来のブラウザでは確認プロンプトが表示されますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-12 21:09:10843ブラウズ

How to Implement a

「このページから移動してもよろしいですか?」を表示する方法従来のブラウザで未保存の変更を求めるプロンプト

はじめに

Web ページでテキスト編集やその他の変更を行ってページから移動しようとすると、ブラウザは確認を表示することがあります。ユーザーにナビゲーションの確認を求めるプロンプト。この機能は、ユーザーが未保存の変更を誤って失うのを防ぐのに役立ちます。

プロンプトを有効にする

レガシー ブラウザ (IE6 ~ 8、Firefox 以前) でこのナビゲーション確認プロンプトを有効にするにはバージョン 4) では、window.onbeforeunload プロパティに関数を割り当てます。参照:

window.onbeforeunload = function(e) {
  // For IE6-8 and Firefox prior to version 4
  if (e) {
    e.returnValue = "Are you sure you want to leave?";
  }

  // For Chrome, Safari, IE8+ and Opera 12+
  return "Are you sure you want to leave?";
};

プロンプトの無効化

ナビゲーション確認プロンプトを無効にするには、window.onbeforeunload:

window.onbeforeunload = null;

未保存を確認しています変更

ページに未保存の変更があるかどうかに関係なく、ユーザーの確認がトリガーされます。未保存の変更を確認するには、好みの検証フレームワークまたはカスタム ソリューションを利用できます。

たとえば、jQuery を使用すると、変更イベントをフォーム フィールドにバインドして、フィールドに非保存の値が含まれる場合に window.onbeforeunload を設定できます。 -空の値:

$('input').change(function() {
  if($(this).val() != "") {
    window.onbeforeunload = "Are you sure you want to leave?";
  }
});

注:

現代ではブラウザーでカスタム ナビゲーション確認メッセージを表示することはセキュリティ上の危険があると考えられ、削除されました。ブラウザは一般的なメッセージのみを表示するようになりました。最新のブラウザでナビゲーション プロンプトを有効または無効にするには、戻り値のない関数参照に window.onbeforeunload を設定または削除するだけです。

以上が「ページを離れる」を実装するにはどうすればよいですか?従来のブラウザでは確認プロンプトが表示されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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