history.pushState
とフラグメント識別子(すなわち、#Heading1
)とjQueryのanimate
メソッドを使用してドキュメント内を移動するWebページがあります。iOS上のChrome。バック/フォワードはhistory.pushStateで動作しませんか?
これは私が文書内の場所に移動する方法です:
$('nav a').click(function(e){
e.preventDefault();
var href = $(this).attr('href');
history.pushState(null, null, href);
$('#address').val(location.pathname + href);
$('html, body').animate({
'scrollTop': $(href).offset().top + 'px'
});
のiOS上でGoogle Chromeを使用するには、「予想通りのアドレスが更新され、スクロールのアニメーションが正常に動作しますが、戻る/進むボタンがドン特定されたタグに移動します。
バック/フォワードボタンを使用すると、アドレスバーのURLはに変更されます。それは特定されたタグには行かない。
私はこの問題をiOSのGoogle Chromeでのみ見てきました。 iPhoneとiPadの両方。
私は問題を示さなければならない私のコードのサブセットでCodePenでペンを作成しました:私は作るために私のペンを更新しました
:http://codepen.io/Ghodmode/pen/YqKGga
更新iPhone/iPadでのテストは少し楽です。これは、デバッグビューを使用することも、おそらく良いでしょう:http://s.codepen.io/Ghodmode/debug/YqKGga
アップデート2:私は、問題を実証しなければならないCodePenで別のページを作成しました
。今度はjQueryを使わないで:http://s.codepen.io/Ghodmode/debug/jqOqpq
私はiPhone/iPadに直接アクセスできないため、これはまだテストできませんでしたが、問題はjQueryとは関係ないと思います。
それは上で正常に動作します:アンドロイドにiPhone/iPadで
- サファリ
- Google Chromeを
- Mozilla FirefoxのAndroidの 上
- Google ChromeのWindowsの
- Mozilla Firefoxの上にWindows
- Windows上のInternet Explorer
私は個人的にこれをテストするiOSデバイスはありませんが、私は信頼できるテスターに私にビデオやスクリーンショットを送ってもらうことに注意してください。
アニメーションが期待通りに機能するので、jQueryの問題のようには見えません。
私はこれに実質的な何かを見つけることができないようですが、_chrome ios hashchange_から_ios webview iOS上のChromeはUIWebViewにラップされたUIにすぎないので、hashchange_ – Vince
[このChromiumバグレポート](https://bugs.chromium.org/p/chromium/issues/detail?id=559122)は、iOSのChromeが「戻る」ボタンを押したときに「hashchange」イベントを発生させないことを確認しているようですクリックされたが、私はそれほど多くの人々がこれに気付いたことを想像することはできない。 – Vince
これに関するアップデートはありますか? 1年後、同じ問題が発生し、iOSでGoogle Chromeを使用して履歴(/戻るボタン)を操作できず、iOSのSafariを含む他のもので動作します。 – adrianTNT