.onbeforeunload

このイベントは、windowがアンロード(unload)しようとする際に発火されます。 この時、documentはまだ見える状態であり、このイベントをキャンセルすることが出来ます。

文法

window.onbeforeunload = funcRef;
  • funcRefには、関数の参照または関数式を指定します。
  • その関数は、EventオブジェクトのreturnValueプロパティに文字列を割り当て、 それと同じ文字列を返す必要があります。 (訳注: 後述する例にあるように、returnValueプロパティに明示的に文字列を割り当てる必要は無さそうです。 また、この文字列がページがアンロードする際の確認ダイアログに表示される文字列になります。)
  • Firefox4とそれ以降では、返される文字列はユーザーに対して表示されないことに注意してください。 その代わりにFirefoxは下記の文字列を表示します。

    英語
    "This page is asking you to confirm that you want to leave - data you have entered may not be saved."
    日本語
    "このページから移動しますか? 入力したデータは保存されません。"

    bug 588292を参照。 (訳注: セキュリティの観点から、Firefoxでは敢えてサイト側でメッセージ指定を出来ないようにしている気がします…)

window.onbeforeunload = function(e) {
  return 'ダイアログに表示されるテキストをここに書きます。';
};
//※訳注)Firefox 4以降では、Firefox側で用意されているテキストを表示することしか出来ません。

注意事項

このイベントの戻り値が無い場合、 ユーザーにページアンロードの確認を促すダイアログを表示します。 また、ほとんどのブラウザでは、このイベントの戻り値は、 このダイアログ内に表示されます。

HTML5仕様は、2011年5月25日以降、window.showModalDialog()window.alert()window.confirm()window.prompt()メソッドは、 このイベント中に無視される可能性があるとしています。

このイベントは、window.addEventListener()と、 beforeunload eventを通して扱うことが可能であり、またそうすべきです。 詳細なドキュメントは、各リンク先を参照してください。

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本 1 1 4 12 3
モバイル
機能 Android Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本 ? ? ? ? ?

仕様

このイベントは元々MicrosoftのInternet Explorer 4で導入され、 HTML5仕様で標準化されました。

関連項目

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。