beforeunload イベントは、ウィンドウ、ドキュメント、およびそのリソースがアンロードされる直前に発生します。 ドキュメントはまだ表示されており、この時点でイベントはキャンセル可能です。

文字列が returnValue イベントプロパティに割り当てられている場合、ダイアログボックスが表示され、ユーザーにページを終了するかどうかの確認が求められます (下記の例を参照)。ブラウザによっては、返された文字列がダイアログボックスに表示されるものもあれば、独自のメッセージが表示されるものもあります。値が指定されていない場合、イベントは静かに処理されます。

メモ: 望ましくないポップアップに対処するために、ブラウザは、ページがインタラクションされていない限り、前のロードイベントハンドラで作成されたプロンプトを表示しないことがあり、あるいはそれらをまったく表示しない場合もあります。

イベントハンドラ/リスナを windowdocumentbeforeunload イベントにアタッチすると、ブラウザが Firefox の Back-Forward キャッシュWebKit のページキャッシュなどのメモリ内ページナビゲーションキャッシュを使用できなくなります。

バブリング いいえ
キャンセル可能か はい
対象のオブジェクト defaultView
インターフェイス Event

プロパティ

プロパティ タイプ 説明
target 読取専用 EventTarget イベントのターゲット (DOMツリーの一番上のターゲット)
type 読取専用 DOMString イベントのタイプ
bubbles 読取専用 Boolean イベントが通常バブリングかどうか
cancelable 読取専用 Boolean イベントがキャンセル可能かどうか
returnValue DOMString イベントの現在の戻り値 (ユーザーに表示するメッセージ)

HTML の仕様では、作成者は Event.returnValue を使用する代わりに Event.preventDefault() メソッドを使用する必要があります。ただし、これはすべてのブラウザではまだサポートされていません。

window.addEventListener("beforeunload", function (event) {
  // Cancel the event as stated by the standard.
  event.preventDefault();
  // Chrome requires returnValue to be set.
  event.returnValue = '';
});

注記

HTML の仕様では、window.alert()window.confirm()window.prompt() メソッドはこのイベント中に無視されるかもしれません。詳細については、HTML の仕様を参照してください。

さまざまなブラウザがイベントの結果を無視し、ユーザーに確認を求めません。ドキュメントは常に自動的にアンロードされます。 Firefoxには、about:configdom.disable_beforeunload という名前のスイッチがあり、この振る舞いを有効にします。

仕様

仕様書 ステータス コメント
HTML Living Standard
beforeunload の定義
現行の標準  
HTML5
beforeunload の定義
勧告 初回定義

ブラウザの互換性

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Activation using return "string"; 1.0 (有) 1 4 12 3
Activation using event.returnValue = "string"; 30.0 (有) (有) (有)    
Activation using event.preventDefault() 未サポート (有) (有) 9   11
Custom text support removed 51.0 未サポート 44.0 (44.0) 未サポート 38 9.1
Feature Android Android Webview Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support ? (有) (有) ? ? ? (no) defect (有)
Custom text support removed ? 51.0 未サポート 44.0 (44.0)       51.0

関連情報

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

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