web-dev-qa-db-ja.com

addEventListenerがonbeforeunloadで機能しない

window.addEventListener("onbeforeunload",function() {return "are you sure?"});

^これは機能していないようです...まったく...確認ボックスを表示せずにページが閉じるだけです...

気付いた...

window.onbeforeunload = function() {return "are you sure?"}

機能しますが、機能を完全に書き直さないように機能を追加したい(たとえば、「onbeforeunload」関数に多くのイベントリスナーを追加したい)。

18
zconnelly13

ononbeforeunloadから削除します。

また、addEventListenerは古いIEや他のブラウザーでは機能しないことに注意してください。一貫したイベントバインディングが必要な場合は、ライブラリを使用します。

26
meder omuraliev

Mozilla Developer Network beforeunloadイベントのAPIリファレンス に、「ほとんどブラウザーにまたがって動作する例」があります。彼らのコードを使用してください。

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\o/";

  (e || window.event).returnValue = confirmationMessage;     //Gecko + IE
  return confirmationMessage;                                //Webkit, Safari, Chrome etc.
});
15
user7610

EventListenersの接頭辞onはありませんが、EventHandlers

ですので、

EventHandlers = prefix on

EventListeners = prefix off

2
Tayeaba Mila