前提・実現したいこと
古いchrome(バージョン67)で動作していたWEBアプリを最新のchrome(バージョン80)でも動作するように修正しています。
その際にunloadイベントが正常に動作しなくなっていたので、動作させる方法か別のイベントで対応する方法を知りたいです。
発生している問題・エラーメッセージ
あるhtmlでページを離れる前に処理を入れたいと考えています。
その処理をunloadイベント内に実装していましたが、ブラウザを閉じた時には動作するのですがリンクで別ページに遷移する時には動作しなくなっていました。
beforeunloadイベントも同時に実装しており、こちらは画面の内容を変更して保存していない際の警告を出すために使用していますので、閉じる前の処理を記述することは難しい状態です。こちらのイベントで必要な処理を実装するのであれば、「変更が保存されませんがよろしいですか?」のダイアログで「はい」を選択した場合だけ処理を実装しなければいけないのですが、そこに処理を実装する方法が無さそうなのです。
該当のソースコード
状況を分かりやすく説明するために、本来実装したい処理は除去しています。
■001.html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>テスト1</title> </head> <body> <h2>ただのテストページ</h2> </body> </html> ■002.html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js "></script> <script> $(function(){ $(window).on('unload', function(event) { return; }); $(window).on('beforeunload', function(event) { return; }); }); </script> <title>テスト2</title> </head> <body> <form method="post" action="foo.cgi"> <input type="text" value="" /> <input type="submit" value="送信" /> </form> <a href="001.html">001</a> </body> </html>
試したこと
002.htmlを開き、001のリンクをクリックするとbeforeunloadイベントしか動きません。
002.htmlを開き、ブラウザを閉じるとbeforeunloadイベント⇒unloadイベントの順で動作しました。
いずれもF12で確認できる開発ツールのデバッグで止めて確認しました。
補足情報(FW/ツールのバージョンなど)
古いchromeのバージョン67
最新のchromeのバージョン80
jquery2.2.2
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/19 12:03