2
这很容易通过下面的代码重现。IE 7中的Internet Explorer标准模式在刷新时两次调用骨干中的路由器
问题是当带有散列的URL(任何散列例如http://localhost:8000/error/#whatever)被导航到然后刷新时,Internet Explorer调用catch-all路径* url类别(和警报),然后继续移除散列并重新启动第二次路线。
该页面按预期与Webkit,Firefox,Opera等一起工作,只有一个警报触发刷新。测试是在本地完成的。所有使用的库都是最新版本。
注:在IE8和IE9渲染引擎将默认为IE7标准模式由于使用HTML5文档类型 - 在IE8和IE9标准模式,这按预期工作。
<html><head>
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery171.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/underscore131.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/backbone091.js"></script>
<script>
App = {
start: function(){
new App.CatalogRouter();
}
}
App.CatalogRouter = Backbone.Router.extend({
routes: {
'checkout/' : 'checkout',
'*url' : 'category'
},
category : function(url){
alert('should only trigger once');
},
checkout: function(){
}
})
$(function(){
App.start();
Backbone.history.start();
});
</script>
</head>
<body></body>
</html>
您是否已经使用Backbone 0.9.1进行了测试?报告问题的更合适的地方是Backbone github而不是StackOverflow。 (https://github.com/documentcloud/backbone/issues) – 2012-02-08 11:15:25
是的,这是在0.9.1测试,现在在github报告问题 – Ryan 2012-02-08 11:19:34