さて、まず第一に、あなたはsの引用符が欠落しているので、それはまったくalert
警告するべきではありません。
実際の質問に対処するには、関数を宣言するだけでなく、関数を呼び出します。
(function (){
alert();
}())
(あなたも書きbeforeonunload
ます。それは正しくありません。そうあるべきですonbeforeunload
)
これにより無名関数が作成され、すぐに呼び出されます。それらは一般的にJavaScriptではIIFEと呼ばれます。イベントハンドラーを追加するには、関数への参照を渡す必要があります。したがって、ここでの正しい方法は次のようになります。
window.onunload = function () {
alert("In unload");
};
window.onbeforeunload = function () {
alert("In unload");
};
undefined
あなたの場合、無名関数は何もしないので、イベントに割り当てられているのはreturn
です。return
関数を編集すれば完全に機能します。
Chromeは、アラートonunloadとonbeforeunloadをブロックする傾向があります。これらは通常、ユーザーが離れることを阻止しようとするスパムWebサイトであるためです。ただし、 Aconsole.log
は完全に機能します。デモを確認してください。コンソールを開き、[実行]をクリックすると、コードが更新され、フレームが再読み込みされ、ページがアンロードされてから再度読み込まれる直前にイベントが発生します。