beforeunload 確認ダイアログはユーザーがページ上で操作をしない限り表示されなくなりました

公開日: | カテゴリー: DOM

概要

beforeunload イベントは、ポップアップ広告を含め、ウェブページがユーザーによって閉じられるのを妨げる目的で乱用されることがしばしばあります。Firefox は、ユーザーがページ上でクリック、タッチ、スクロール、文字入力といった何らかのインタラクションを起こさない限り、beforeunload イベントハンドラーの戻り値を無視し、確認ダイアログを表示せずにページ遷移を強制するようになりました。

また、すべての beforeunload ダイアログを初期設定で不許可とする計画もあるため、ウェブ開発者にはページ遷移を確認するためにこの種類のイベントを使用するのを避けるよう推奨します。ウェブページやアプリは、Web Storage APIIndexedDB API でローカルに、あるいは Ajax テクニックを使ってリモートにドラフト状態を保存することで、データ消失を防ぎつつユーザー体験を向上させることが可能です。

更新: このドキュメントの初期草稿は誤解を招く内容でした。ユーザーがページ上でインタラクションを起こしていない場合でも beforeunload イベント自体が発動されることに変わりはありません。

参考資料