Обновление бесконечной страницы Firefox 6 со страницей с хэш-тегами - PullRequest
41 голосов
/ 18 августа 2011

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

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

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

Ответы [ 2 ]

66 голосов
/ 18 августа 2011

Оказывается, это проблема со старой версией 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. Обновите до последней версии, и проблема исчезнет .Как упоминалось в комментарии Натана Фокса , я получил последнюю версию от 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();
 }
3 голосов
/ 13 июня 2012

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

...