Это легко воспроизвести с помощью приведенного ниже кода.
Проблема заключается в том, что URL-адрес с хэш-кодом (любой хэш, например, http://localhost:8000/error/#whatever) перемещается, а затем обновляется, Internet Explorer вызывает универсальную ловушкуroute * url category (и alerts), но затем приступает к удалению хэша и повторному вызову маршрута.
Страница работает, как и предполагалось, с 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>