Обновление Бесконечной Страницы Firefox 6 Со Страницей С Хэш-Тегами

когда Firefox недавно обновился до версии 6, Сайт, над которым я работаю, сильно сломался.

сайт работает нормально при просмотре любой страницы без хэш-тег, но если вы попытаетесь перейти на страницу с хэш-тег (например,#test) или обновить страницу после того, как хэш-тег был применен, страница обновляется так быстро, как это может бесконечно.

Это Asp.Net сайт MVC 2 создан около полутора лет назад.

2 ответов


оказывается, это проблема со старой версией MicrosoftAjax.js (тот, который поставляется с установленным Asp.Net MVC 2).

откройте MicrosoftAjax.отлаживать.JS-файл и проверьте номер версии файла. Верхняя часть этого файла будет выглядеть так, если это ваша проблема:

 // Name:        MicrosoftAjax.debug.js
 // Assembly:    System.Web.Extensions
 // Version:     4.0.0.0
 // FileVersion: 4.0.20526.0

Это версия, которая содержит эту ошибку. Последняя версия файла на момент написания этой статьи-4.0.30205.0. обновление до последней версии и проблема исчезнет. Как упоминается в комментарии Натан Фокс, я получил последнюю версию от Microsoft cdn и особенно minified и debug версий.

для любопытных я проследил проблему в файле javascript.

багги версия включает в себя:

 if ((Sys.Browser.agent === Sys.Browser.Firefox) && window.location.hash && (!window.frameElement || window.top.location.hash)) {
      window.history.go(0);
 }

который был исправлен следующим образом в более новой версии:

 if ((Sys.Browser.agent === Sys.Browser.Firefox) && window.location.hash && (!window.frameElement || window.top.location.hash)) {
      (Sys.Browser.version < 3.5) ?
      window.history.go(0) :
      location.hash = this.get_stateString();
 }

Удаление MicrosoftAjax.js или MicrosoftAjax.отлаживать.js может помочь, но просто замените файлы текущими версиями изhttp://www.asp.net/ajaxlibrary/CDNAjax4.ashx сделает работу, тоже!