Подтвердить что ты не робот

Firefox 6 Бесконечная страница обновляется с помощью страницы с тегами хэша

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

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

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

4b9b3361

Ответ 1

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

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

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

Это версия, содержащая эту ошибку. Последняя версия файла на момент написания этой статьи - 4.0.30205.0. Перейти к последней версии и проблема исчезнет. Как упоминалось в комментарии Nathan Fox, я получил последнюю версию 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();
 }

Ответ 2

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