ZAPAnet総合情報局 > ZAPAブログ2.0 > beforeunloadはiOSで効かない

beforeunloadはiOSで効かない

2020年06月24日 プログラミングTIPS
フォームの入力途中に画面遷移しようとした場合に、警告を出すJavaScriptはないかなぁと考えました。誤った操作で、フォームへの入力内容が全て消えてしまうのは悲しすぎますから。jQueryか何かで簡単に実装できるだろうと思って探してみました。
試しに上記サイトの通り実装してみたところ、Windows PCのWebブラウザからは警告が出ました。ところが、iPhoneのWebブラウザSafariからはアラートが出ません。

「あれ、なんでだろう?」と思っていろいろ調べてみました。
参考文献。
beforeunload

mobile Safariではbeforeunloadは効かなくて、それどころかブラウザによって挙動も少しずつ変わってくることがわかりました。beforeunloadではなくpagehideを使ったり、実装するのはけっこう面倒くさそうです。