42 votes

Firefox 6 Infinite Page Actualiser avec la page avec des balises de hachage

Lorsque Firefox a récemment mis à jour la version 6, un site sur lequel je travaille est tombé en panne.

Le site fonctionne normalement lorsque vous accédez à une page sans balise de hachage, mais si vous essayez de naviguer vers une page avec une balise de hachage (par exemple, #test ) ou actualisez la page une fois la balise de hachage appliquée, la page s'actualise. aussi vite que possible à l'infini.

Ceci est un site Asp.Net MVC 2 créé il y a environ un an et demi.

67voto

frank hadder Points 2988

S'avère, c'est un problème avec une ancienne version de MicrosoftAjax.js (celui qui est installé avec Asp.Net MVC 2).

Ouvrir le MicrosoftAjax.debug.js fichier et vérifiez le numéro de version du fichier. Le haut de ce fichier ressemble à ceci si cela est votre problème:

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

C'est la version qui contient ce bug. La dernière version de fichier de cette écriture est 4.0.30205.0. La mise à niveau vers la dernière version et le problème disparaît. Comme mentionné dans un commentaire de Nathan Fox, j'ai téléchargé la dernière version à partir de la Microsoft cdn et plus particulièrement de la minifiés et de débogage des versions.

Pour les curieux, j'ai tracé le problème dans le fichier javascript.

Le buggy version inclut:

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

Ce qui a été corrigé à la suite dans la version la plus récente:

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

3voto

Chris Points 99

La suppression de MicrosoftAjax.js ou MicrosoftAjax.debug.js peut aider, mais le remplacement des fichiers par les versions actuelles à partir de http://www.asp.net/ajaxlibrary/CDNAjax4.ashx fera également l'affaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X