Neden goog.history.Html5Tarih nesnesi fragman değiştiğinde her seferinde iki kez goog.history.EventType.NAVIGATE olayını tetikliyor? Bu kodun örnektir:Google Closure - Html5Tarihli yangınlar NAVIGATE olayını iki kez tetikliyor
var history = goog.history.Html5History.isSupported()
? new goog.history.Html5History()
: new goog.History();
goog.events.listen(history, goog.history.EventType.NAVIGATE, function(e) {
console.log(['navigation', e.target.getToken()]);
});
history.setEnabled(true);
Ve bu günlük geçerli:
["navigation", "!/properties/new"]
["navigation", "!/properties/new"]
UPD: anladım gibi geri aramasında e
nesnenin isNavigation
alanın iki farklı değerler vardır. İlk kez false
değerini alır ve ikinci kez true
değerini alır. isNavigation
şu anlama gelir: Olay bir tarayıcı eylem tarafından tetiklenen ise, olarak ileri veya geri, URL'yi düzenleme veya window.history çağıran bir bağlantıyı tıklayarak tür
isNavigation Doğru (go | ileriye | geri.). Belirteç bir setToken tarafından değiştirilmişse veyaToken çağrısı değiştirilirse false.
Fakat sadece bir tane nasıl kovulur?
Burada basit yama bulabilirsiniz: http://code.google.com/p/closure-library/issues/detail?id=449 Bu tarayıcı olayı popstate için bağlayıcı Html5History kaldırılan . –