質問: 対象画面において、ブラウザの戻る or 進むボタンが押下されたさい、 Alertを表示させたいと考えております。 iOS Chromeやデスクトップモダンブラウザでは動作(Alert表示)が確認できるのですが、 iOS Safariではページの移動はしないもののAlertが表示されません。 ### ソースコード ``` $(function() { 'use strict'; history.pushState(null, null, null); // 履歴の移動を検知したときにアラートを表示 window.addEventListener('popstate', function() { alert('戻る or 進むボタンは使用できません。'); }); }); ``` ### 試したこと 確認のため、下記の通りalertとは別の処理(背景色変更)を入れてみたところ iOS Safariでも支障なく背景色が反映されました。しかしAlertは表示されません。 ``` $(function() { 'use strict'; history.pushState(null, null, null); // 履歴の移動を検知したときにアラートを表示 window.addEventListener('popstate', function() { alert('戻る or 進むボタンは使用できません。'); // 処理が通っているか確認 → 背景色変化確認できた $('body').css('backgroundColor', '#000'); }); }); ``` ### 対象ブラウザ iOS 11.3.1 Safari どうぞよろしくお願いいたします。
回答: 原因解明には至っておりませんが、`alert()`の代わりにモーダルを表示させることで対応いたしました。 ``` // 略 // 履歴の移動を検知したときにアラートを表示 window.addEventListener('popstate', function() { // モーダル処理 }); // 略 ``` iOS Safariでも支障なく表示されたため、本件はこれにて解決とさせていただきます。 調査いただいた皆様ありがとうございました。