www net mvc5 mvc google asp asp.net-mvc-2 firefox microsoft-ajax

asp.net mvc 2 - net - Firefox 6 Infinite Page Refresh con página con etiquetas hash



security asp net mvc (2)

Eliminar MicrosoftAjax.js o MicrosoftAjax.debug.js puede ayudar, pero simplemente reemplazar los archivos con las versiones actuales de http://www.asp.net/ajaxlibrary/CDNAjax4.ashx también hará el trabajo.

Cuando Firefox actualizó a la versión 6 recientemente, un sitio en el que estoy trabajando se quebró gravemente.

El sitio funciona normalmente cuando navega a cualquier página sin una etiqueta hash, pero si intenta navegar a una página con una etiqueta hash (por ejemplo, #test ) o actualiza la página una vez que se aplicó una etiqueta hash, la página se actualiza tan rápido como sea posible. infinitamente

Este es un sitio de Asp.Net MVC 2 creado hace aproximadamente un año y medio.


Resulta que este es un problema con una versión anterior de MicrosoftAjax.js (la que viene instalada con Asp.Net MVC 2).

Abra el archivo MicrosoftAjax.debug.js y verifique el número de versión del archivo. La parte superior de este archivo se verá así si este es su problema:

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

Esa es la versión que contiene este error. La última versión del archivo al momento de escribir esto es 4.0.30205.0. Actualiza a la última versión y el problema desaparece . Como mencioné en un comentario de Nathan Fox , obtuve la última versión del cdn de Microsoft y más específicamente las versiones minified y de debug .

Para los curiosos, tracé el problema en el archivo javascript.

La versión buggy incluye:

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

Que se corrigió a lo siguiente en la versión más nueva:

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