Asp.net-Mvc-2
Firefox 6 無限頁面刷新,帶有雜湊標籤的頁面
當 Firefox 最近更新到第 6 版時,我正在處理的一個網站嚴重崩潰。
當瀏覽到沒有雜湊標記的任何頁面時,該站點正常執行,但是如果您嘗試導航到帶有雜湊標記的頁面(例如
#test)或在應用雜湊標記後刷新頁面,則頁面會盡可能快地無限刷新。這是大約一年半前創建的一個 Asp.Net MVC 2 站點。
事實證明,這是舊版本的 MicrosoftAjax.js(隨 Asp.Net MVC 2 一起安裝的那個)的問題。
打開 MicrosoftAjax.debug.js 文件並檢查文件版本號。如果這是您的問題,該文件的頂部將如下所示:
// Name: MicrosoftAjax.debug.js // Assembly: System.Web.Extensions // Version: 4.0.0.0 // FileVersion: 4.0.20526.0那是包含此錯誤的版本。撰寫本文時的最新文件版本是 4.0.30205.0。升級到最新版本,問題就消失了。正如Nathan Fox在評論中提到的,我從Microsoft cdn獲得了最新版本,更具體地說是縮小版和調試版。
出於好奇,我在 javascript 文件中追踪了問題。
有缺陷的版本包括:
if ((Sys.Browser.agent === Sys.Browser.Firefox) && window.location.hash && (!window.frameElement || window.top.location.hash)) { window.history.go(0); }在新版本中已更正為以下內容:
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(); }