HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

Firefoxだけbeforeunloadの挙動が違う…

はじめに

一般的に、離脱防止の目的で使用されるであろう、beforeunloadイベント。
タブを閉じたり、ブラウザの「戻る」操作をしたときにダイアログが表示されるため、嫌われモノとなるアレです。

developer.mozilla.org

嫌われモノとわかっていても、実装しなければならないこともある。
これはしょうがない…。

さて。

テスト時にようやく気づいたのですが、Firefoxだけ異なる挙動をするようです。
(テスト時のバージョンは47.0です)
ちなみに、メッセージの内容がダイアログに表示されない云々…という話ではありません。

何が違うのか?

ダイアログが表示されない場合があります。
ページが表示されて、何も操作をせずにページを移動しようとする/閉じようとすると、ダイアログが表示されません。

どこでもいいので、クリックしてから閉じると表示されます。
マウスホイールくるくるでも、表示されます。
(実際スクロールしなくてもOK)
何かしらの操作をすることが、トリガーになっているようです。

調べてみた

どこかにこれに関する情報はないものか?と思ったらこちらにありました。

www.fxsitecompat.com

Firefox44から、こういう動作なのですね。
結構前じゃないか…。
全然知りませんでした。