2012-02-08 25 views
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> 
+0

您是否已经使用Backbone 0.9.1进行了测试?报告问题的更合适的地方是Backbone github而不是StackOverflow。 (https://github.com/documentcloud/backbone/issues) – 2012-02-08 11:15:25

+0

是的,这是在0.9.1测试,现在在github报告问题 – Ryan 2012-02-08 11:19:34

回答

1

这是Backbonejs中的一个错误,此后一直是fixed