2011-08-18 10 views
41

Gdy Firefox zaktualizował się do wersji 6 niedawno, strona, nad którą pracuję, poważnie się zepsuła.Firefox 6 Infinite Page Odświeżanie strony ze znacznikami Hash

Witryna działa normalnie podczas przeglądania do dowolnej strony bez tag hash ale jeśli spróbujesz, aby przejść do strony z tagiem hash (np #test) lub odświeżyć stronę raz zastosowano tag hash, odświeżeniu strony tak szybko, jak może to nieskończenie.

To jest witryna sieci Web Asp.Net MVC 2 utworzona około półtora roku temu.

Odpowiedz

65

Okazało się, jest to problem ze starszą wersją MicrosoftAjax.js (tą, która jest instalowana z Asp.Net MVC 2).

Otwórz plik MicrosoftAjax.debug.js i sprawdź numer wersji pliku. Góra tego pliku będzie wyglądać tak, jeśli jest to Twój problem:

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

To wersja zawierająca ten błąd. Najnowsza wersja tego pliku to 4.0.30205.0. Uaktualnij do najnowszej wersji, a problem zniknie. Jak wspomniano w komentarzu Nathan Fox, otrzymałem najnowszą wersję od Microsoft cdn, a dokładniej wersji minified i debug.

Dla ciekawskich, wyśledziłem problem w pliku javascript.

Wersja buggy obejmuje:

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

Który został skorygowany do następujących w nowszej wersji:

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(); 
} 
+4

Wow. Dzięki za to. Miałem ten problem kilka dni temu i nie spodziewałem się, że javascript będzie problemem ... przez szczęśliwy przypadek znalazłem to pytanie i woot, teraz jest naprawione. – smdrager

+0

Dzięki za zrozumienie tego, zaoszczędziłem mnóstwo czasu! –

+0

Możesz znaleźć linki do najnowszych plików .js na stronie MS CDN pod adresem http://www.asp.net/ajaxlibrary/CDNAjax4.ashx. –

Powiązane problemy