Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

beforeunload

この翻訳は不完全です。英語から この記事を翻訳 してください。

beforeunload イベントは、 window や document およびそのリソースがアンロードされようとしている時に発生します。

文字列が returnValue イベントプロパティに割り当てられている場合、ダイアログボックスが表示され、ページを去ることを確認します(以下の例を参照)。値が指定されていない場合には、イベントは静かに処理されます。

一般情報

仕様
HTML5
インターフェイス
Event
バブリング
No
キャンセル可能か
Yes
ターゲット
defaultView
既定のアクション
Varies (prompts the user for confirmation to leave the page).

プロパティ

プロパティ 説明
target 読取専用 EventTarget イベントターゲット (DOM ツリー内最上位の対象)
type 読取専用 DOMString イベントの型
bubbles 読取専用 boolean 通常時のバブリングの有無
cancelable 読取専用 boolean イベントのキャンセルの可否
returnValue DOMString The current return value of the event (the message to show the user).

window.addEventListener("beforeunload", function (event) {
  event.returnValue = "\o/";
});

// is equivalent to
window.addEventListener("beforeunload", function (event) {
  event.preventDefault();
});

Webkit ベースのブラウザはダイアログボックスの仕様に従っていません。ほとんどのクロスブラウザでの実装例は次のようになります。

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\o/";

  e.returnValue = confirmationMessage;     // Gecko and Trident
  return confirmationMessage;              // Gecko and WebKit
});

注記

このイベントが空でない値を返した場合、ページのアンロードを確認するプロンプトがユーザーに表示されます。ほとんどのブラウザでは、イベントの戻り値はこのダイアログに表示されます。Firefox 4 以降では、返された文字列がユーザーに表示されません。代わりに、Firefox は「このページはあなたがこのページを去ろうとしていることを確認しています。つまり、あなたが入力した情報は保存されていないかも知れません。」バグ 588292 を参照してください。

2011年5月25以降、HTML5の仕様はこのイベントの間、 window.alert()window.confirm() と window.prompt() メソッドが無視されるかもしれないと記述しています。詳細については HTML5 の仕様 を参照してください。

様々な携帯電話のブラウザがこのイベントの結果を無視することにも注意してください(つまり、ユーザーに確認をしません)。Firefox には同じことをするための隠し設定が about:config にあります。本質的に、これはユーザーが常に文書をアンロードされるかも知れないことを確認することを意味します。

関連情報

参照

ドキュメントのタグと貢献者

 このページの貢献者: ossan-engineer
 最終更新者: ossan-engineer,