2016-02-25 8 views
16

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の問題のようには見えません。

+0

私はこれに実質的な何かを見つけることができないようですが、_chrome ios hashchange_から_ios webview iOS上のChromeはUIWebViewにラップされたUIにすぎないので、hashchange_ – Vince

+3

[このChromiumバグレポート](https://bugs.chromium.org/p/chromium/issues/detail?id=559122)は、iOSのChromeが「戻る」ボタンを押したときに「hashchange」イベントを発生させないことを確認しているようですクリックされたが、私はそれほど多くの人々がこれに気付いたことを想像することはできない。 – Vince

+0

これに関するアップデートはありますか? 1年後、同じ問題が発生し、iOSでGoogle Chromeを使用して履歴(/戻るボタン)を操作できず、iOSのSafariを含む他のもので動作します。 – adrianTNT

答えて

1

iOSには、HTML5履歴APIのバグはほとんどありません。

あなたが試してみました:

window.addEventListener("popstate", function(e) { 
    window.location.href = location.href; 
}); 

をこのプラグインは、(たとえ背景読書のための)いくつかの使用History.jsのものであってもよいです。これはブラウザ間の互換性の問題を解決し、必要に応じてオプションのHTML4ハッシュフォールバックを提供します

関連する問題