Почему объект goog.history.Html5History запускает событие goog.history.EventType.NAVIGATE дважды каждый раз при изменении фрагмента?Это пример кода:
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"]
UPD: Как я выяснил, есть два разных значения isNavigation
поле e
объекта в обратном вызове.Первый раз он принимает значение false
, а второй раз - значение true
.isNavigation
означает:
isNavigation True, если событие было вызвано действием браузера, таким как перемотка вперед или назад, нажатие на ссылку, редактирование URL-адреса или вызов window.history. (Go |назад | вперед).False, если токен был изменен с помощью вызова setToken или replaceToken.
Но как получить только один, даже запущенный?