2016-02-25 25 views
16

Parça tanımlayıcılarıyla (#Heading1) ve jQuery'nin animate yönteminde belge içinde gezinmek için history.pushState kullanan bir web sayfam var.Chrome; back/forward history.pushState ile çalışmıyor mu?

Bu benim belgede bir konuma gitmek nasıl:

$('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 kullanma, 'beklendiği gibi adres güncellenir ve kaydırma animasyon çalışıyor, ancak geri/ileri düğmelerini don Belirlenen etiketlere gitmeyin.

Geri/ileri düğmelerini kullanırken, adres çubuğundaki URL'nin değiştiğini not etmeliyim. Sadece belirlenen etikete gitmiyor.

Sadece iOS'ta Google Chrome'u kullanarak bu sorunu gördüm; hem iPhone hem iPad.

Sorunu göstermelidir benim kod bir alt kümesi ile CodePen bir Pen oluşturduk

: http://codepen.io/Ghodmode/pen/YqKGga


Güncelleme:
Kalemimi güncelledik yapmak iPhone/iPad'de test etmek biraz daha kolay. http://s.codepen.io/Ghodmode/debug/YqKGga



Güncelleme 2: Sorunu göstermelidir Ben CodePen başka sayfa hazırladık
Bu ayıklama görünümünü kullanmak için belki de daha iyi olur. Bu süre, jQuery'siz: http://s.codepen.io/Ghodmode/debug/jqOqpq

iPhone/iPad'e doğrudan erişimim olmadığından henüz bunu test edemedim, ancak sorunun jQuery ile ilgili olduğunu sanmıyorum.


Üzerinde çalışıyor: Android iPhone/iPad

  • Safari
  • Google Chrome'u
  • Mozilla Firefox Android
  • üzerinde
  • Google Chrome, Windows
  • Mozilla Firefox üzerine Windows
  • Internet Explorer'da Windows

Bunu test etmek için kişisel olarak herhangi bir iOS cihazım olmadığını, ancak bana herhangi bir sorunla ilgili videolar ve ekran görüntüleri gönderen güvenilir bir test cihazım olduğunu not etmem gerekir.

Animasyon beklendiği gibi çalıştığından, jQuery sorunu gibi görünmüyor.

+0

Bu konuda önemli bir şey bulmak gibi olamaz isterseniz isteğe bağlı HTML4 karma geçiş sağlar, ama _chrome ios aramalarını web görüntülemesini _ios için hashchange_ geçtik iOS'taki Chrome, UIWebView'ın etrafına sarılmış bir kullanıcı arayüzü olduğu için hashchange_. – Vince

+3

[Chromium'un hata raporu] (https://bugs.chromium.org/p/chromium/issues/detail?id=559122) iOS'ta Chrome 'hashchange' olayı olmadığını doğrular gibiydi zaman geri düğmesi tıklandı, ancak bunu kaç kişinin fark ettiğini hayal bile edemiyorum. – Vince

+0

Bu konuda herhangi bir güncelleme var mı? Bir yıl sonra aynı sorunu görüyorum, iOS'ta Google Chrome'u kullanarak geçmişi (/ geri düğmesi) kullanamazsınız, iOS'ta Safari dahil olmak üzere başka bir şey üzerinde çalışır. – adrianTNT

cevap

1

iOS, HTML5 Geçmiş API'siyle adil bir kaç hata içeriyor.

sen denediniz:

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

Bu eklenti History.js (hatta arka plan okuması için) bazı kullanım olabilir. Bu çapraz tarayıcı uyumluluğu sorunlarını çözer ve ayrıca

İlgili konular