2011-08-18 15 views
41

Quando Firefox è stato aggiornato alla versione 6 di recente, un sito su cui sto lavorando si è rotto in modo grave.Firefox 6 pagina infinita Aggiorna con pagina con tag hash

Il sito funziona normalmente durante la navigazione a qualsiasi pagina senza un tag hash, ma se si tenta di passare a una pagina con un tag hash (ad es #test) o aggiornare la pagina una volta è stato applicato un tag hash, la pagina viene aggiornata più rapidamente che può all'infinito.

Questo è un sito ASP.Net MVC 2 creato circa un anno e mezzo fa.

risposta

65

Risulta, questo è un problema con una vecchia versione di MicrosoftAjax.js (quella che viene installata con Asp.Net MVC 2).

Aprire il file MicrosoftAjax.debug.js e controllare il numero di versione del file. La parte superiore di questo file sarà simile a questo se il problema è questo:

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

Questa è la versione che contiene questo errore. L'ultima versione del file al momento della stesura è 4.0.30205.0. Aggiornamento alla versione più recente e il problema scompare. Come menzionato in un commento di Nathan Fox, ho ricevuto l'ultima versione dal Microsoft cdn e in particolare le versioni minified e debug.

Per i curiosi, ho rintracciato il problema nel file javascript.

La versione buggy comprende:

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

Quale è stata corretta a quanto segue nella nuova versione:

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. Grazie per questo. Ho avuto questo problema qualche giorno fa e non mi aspettavo che il javascript fosse il problema ... per fortuna ho trovato questa domanda e woot, ora è stato risolto. – smdrager

+0

Grazie per aver capito questo, mi ha risparmiato un sacco di tempo! –

+0

È possibile trovare i collegamenti ai file .js più recenti nella pagina MS CDN all'indirizzo http://www.asp.net/ajaxlibrary/CDNAjax4.ashx. –

Problemi correlati