beforeunloadはiOSで効かない
2020年06月24日 プログラミングTIPS
フォームの入力途中に画面遷移しようとした場合に、警告を出すJavaScriptはないかなぁと考えました。誤った操作で、フォームへの入力内容が全て消えてしまうのは悲しすぎますから。jQueryか何かで簡単に実装できるだろうと思って探してみました。
試しに上記サイトの通り実装してみたところ、Windows PCのWebブラウザからは警告が出ました。ところが、iPhoneのWebブラウザSafariからはアラートが出ません。
「あれ、なんでだろう?」と思っていろいろ調べてみました。
試しに上記サイトの通り実装してみたところ、Windows PCのWebブラウザからは警告が出ました。ところが、iPhoneのWebブラウザSafariからはアラートが出ません。
「あれ、なんでだろう?」と思っていろいろ調べてみました。
参考文献。
mobile Safariではbeforeunloadは効かなくて、それどころかブラウザによって挙動も少しずつ変わってくることがわかりました。beforeunloadではなくpagehideを使ったり、実装するのはけっこう面倒くさそうです。
- 主要モバイルブラウザ遷移時のイベントの種類と挙動 - Qiita
- [iOS/Android]ブラウザでページが非表示になったことを検知する方法 - Qiita
- 【iOS】iPhoneでページ離脱時にajaxで情報を送信するゾ! - やったこと
mobile Safariではbeforeunloadは効かなくて、それどころかブラウザによって挙動も少しずつ変わってくることがわかりました。beforeunloadではなくpagehideを使ったり、実装するのはけっこう面倒くさそうです。