为什么每次更改片段时 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 如果事件由浏览器操作(例如前进或后退、单击链接、编辑 URL 或调用 window.history.(go|back|forward))触发,则为真。如果令牌已被 setToken 或 replaceToken 调用更改,则为 False。
但是如何才能让只有一个甚至被解雇呢?