beforeunload
イベントは、ウィンドウ、ドキュメント、およびそのリソースがアンロードされようとしているときに発生します。
文字列がreturnValue
イベントプロパティに割り当てられると、ダイアログボックスが表示され、ユーザーにページの終了を確認するメッセージが表示されます。値を指定しない場合は、イベントが静かに処理されます。
window.addEventListener("beforeunload", (event) => {
event.returnValue = null;
});
// is equivalent to
window.addEventListener("beforeunload", (event) => {
event.preventDefault();
});
のWebKitベースのブラウザがダイアログボックスの仕様に従わない場合があります。ほとんどクロスブラウザ作業例:
window.addEventListener("beforeunload", (event) => {
const confirmationMessage = "your message";
event.returnValue = confirmationMessage;
return confirmationMessage;
});
NOTE このイベントはvoid以外の値を返した場合、ユーザーは、ページのアンロードを確認するメッセージが表示されます。ほとんどのブラウザでは、このダイアログにイベントの戻り値が表示されます。 Firefox 4以降では、返された文字列はユーザに表示されません。代わりに、Firefoxは独自の定義済みの文字列を表示します。
2011以来、window.alert()
、window.confirm()
、そしてwindow.prompt()
メソッドの呼び出しHTML5仕様の状態は、このイベント中に無視することができます。
さまざまなモバイルブラウザでは、イベントの結果が無視されることに注意してください(つまり、ユーザーに確認を求めることはありません)。 Firefoxは、同じことを行うためにabout:config
に隠された環境設定を持っています。本質的に、これは、ユーザがドキュメントがアンロードされる可能性があることを常に確認することを意味する。