質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

4232閲覧

IOS(iPhone)のsafariでのみブラウザバック時の判定ができない

daichans

総合スコア12

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2023/07/26 03:36

編集2023/07/27 02:00

ブラウザバック時にモーダルを表示するJSを作った所
ChromeやPCsafariでは表示されるのですがIOSのsafariでのみ正しく動作がされません。

調べても原因がわからず。。どなたかお力添えをいただけませんでしょうか。

宜しくお願い致します。

【例】
AページとBページがあり、Bページでブラウザバックをした際にのみモーダルを表示する。

【正常動作(ChromeやPCsafariなど)】
AページからBページ遷移、Bページでブラウザバックした際にモーダルが表示される。

【異常動作(iPhoneのsafari)】
AページからBページ遷移、Bページでブラウザバックした際にモーダルが表示されない。
なぜか、キャッシュを削除したい状態でBページから開いた際はブラウザバック時にモーダルが表示される時がある。

【コード】

$(function () { let hash = location.hash; if (hash != '#site') { history.pushState(null, null, location.href); history.replaceState(null,null,'#site'); } history.replaceState(null, null, null); window.addEventListener('popstate', function (event) { if (location.hash != '#site') {     ■ここにモーダル表示用の処理     尚モーダル以外の処理も書いているがどれも反応しない。 } }); });

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikedas

2023/07/26 08:17

正常動作、異常動作したそれぞれのブラウザの正確なバージョンを記してください (質問文を編集して書き加えてください)。
ikedas

2023/07/26 08:26

あと、location.hashの内容で処理を変えているみたいですが、ご質問の本質とは関係ないと思うので、その部分のif文は取り除けないでしょうか。より単純なコードで現象を再現できたほうが問題の確認がしやすいです。
guest

回答1

0

ベストアンサー

おそらく、Safari 16で発生した次のバグ (もしくは仕様変更) が原因と思われます。

  • Bug 248303: popstate events are not fired for swipe-back gesture

質問者さんからの情報提供がないため、確たることは言えません。参考として記します。

投稿2023/07/27 05:57

編集2023/07/27 05:58
ikedas

総合スコア4443

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daichans

2024/08/26 07:52

回答ありがとうございます。 safariの影響のようで問題の解決には至りませんでしたが、ご回答頂けました為ベストアンサーとさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問