この翻訳は不完全です。英語から この記事を翻訳 してください。
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 にあります。本質的に、これはユーザーが常に文書をアンロードされるかも知れないことを確認することを意味します。
関連情報
参照