我对 Safari 中的 Backbone 路由器感到头疼
我有这段代码:
app.navigate("ask/" + encodedSearchKey,true);
在我的路由器中:
var AppRouter = Backbone.Router.extend({
routes:{
"":"main",
"ask/*encodedSearchKey":"askSearch",
},
askSearch:function(){
...
},
...
});
app = new AppRouter();
Backbone.history.start();
在 chrome 中,它按预期工作,URL 被路由并且 askSearch 函数被调用一次
然而,在 Safari 中,askSearch 函数实际上被执行了两次
当我尝试
app.navigate("ask/" + encodedSearchKey,false);
在 chrome 中,askSearch 函数没有按预期调用,但在 Safari 中它实际上被调用了一次
我已经运行了调试器,并且很确定 app.navigate 行总是只被调用一次,除了路由器本身之外,没有其他东西可以触发 askSearch 函数
现在我知道我可以通过检测浏览器类型来解决这个问题,但是我在网上没有发现任何类似的问题,似乎人们没有这个问题,我在这里做错了什么吗?