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

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

Le site fonctionne normalement lorsque vous naviguez sur une page sans étiquette de hachage, mais si vous essayez de naviguer vers une page avec un mot-clé (par exemple, #test ) ou actualisez la page après l’application d’un mot-clé, la page est actualisée infiniment.

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

Il s’avère que c’est un problème avec une ancienne version de MicrosoftAjax.js (celle qui est installée avec Asp.Net MVC 2).

Ouvrez le fichier MicrosoftAjax.debug.js et vérifiez le numéro de version du fichier. Le haut de ce fichier ressemblera à ceci si tel 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 version la plus récente du fichier à ce jour est 4.0.30205.0. Effectuez une mise à niveau vers la dernière version et le problème disparaît . Comme mentionné dans un commentaire de Nathan Fox , j’ai reçu la dernière version du cdn de Microsoft et plus spécifiquement les versions minifiées et de débogage .

Pour les curieux, j’ai retracé le problème dans le fichier javascript.

La version buggy comprend:

  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 suivante dans la nouvelle version:

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

La suppression de MicrosoftAjax.js ou de MicrosoftAjax.debug.js peut être utile, mais le simple remplacement des fichiers par les versions actuelles de http://www.asp.net/ajaxlibrary/CDNAjax4.ashx fera également l’affaire!