1. ホーム
  2. javascript

[解決済み] ページ終了イベントのインターセプト

2022-08-14 13:42:20

質問

私のシステム内でページを編集しているとき、ユーザーが別のウェブサイトに移動することを決定し、そうすることによって、保存していないすべての編集を失う可能性があります。

私は、別のページに移動しようとする試みを阻止し、潜在的に現在の作業を失う可能性があるので、これが起こることを望むかどうかをユーザーに確認させたいと考えています。

Gmail は非常に似たような方法でこれを行います。 たとえば、新しい電子メールを作成し、メッセージ本文への入力を開始し、アドレス バーに新しい場所 (たとえば twitter.com など) を入力します。 すると、「よろしいですか?

これを再現する方法について教えてください。 私は IE8 をターゲットにしていますが、Firefox や Chrome とも互換性があることを望んでいます。

どのように解決するのですか?

Ghommeyさんの回答に似ていますが、こちらはIEやFirefoxの古いバージョンにも対応しています。

window.onbeforeunload = function (e) {
  var message = "Your confirmation message goes here.",
  e = e || window.event;
  // For IE and Firefox
  if (e) {
    e.returnValue = message;
  }

  // For Safari
  return message;
};