क्यों जाता है goog.history.Html5History5 हिस्ट्री ऑब्जेक्ट आग goog.history.EventType.NAVIGATE ईवेंट प्रत्येक बार दो बार जब खंड बदल जाता है? इस कोड का उदाहरण है:Google क्लोजर - Html5History नेविगेशन ईवेंट को दो बार
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);
और यह लॉग है:
["navigation", "!/properties/new"]
["navigation", "!/properties/new"]
युपीडी: जैसा कि मैंने पता लगा है वहाँ कॉलबैक में e
वस्तु की isNavigation
क्षेत्र के दो अलग-अलग मान रहे हैं। पहली बार यह false
मान लेता है, और दूसरी बार यह true
मान लेता है। isNavigation
का अर्थ है:
isNavigation यह सच है, तो घटना में ब्राउज़र कार्यवाही से शुरू हो रहा था, इस तरह के के रूप में आगे या पीछे, संपादन URL, या window.history बुला, एक लिंक पर क्लिक करने (जाना | वापस | आगे।)। झूठी अगर टोकन को को एक सेट टोकन या प्रतिस्थापित कॉल द्वारा बदला गया है।
लेकिन केवल एक को कैसे निकाला जाए?
यहाँ आप साधारण पैच पा सकते हैं: http://code.google.com/p/closure-library/issues/detail?id=449 यह ब्राउज़र घटना popstate लिए बाध्यकारी Html5History को हटाने है। –