Firefox 6无限页面刷新页面带有哈希标签

时间:2011-08-18 15:30:02

标签: asp.net-mvc-2 firefox microsoft-ajax

当Firefox最近更新到版本6时,我正在努力的网站严重破坏。

当浏览到任何页面而没有哈希标记时,网站正常运行但是如果您尝试导航到带有哈希标记的页面(例如#test)或者刷新页面一次应用了哈希标记,页面刷新速度尽可能快。

这是一个半年前创建的Asp.Net MVC 2网站。

2 个答案:

答案 0 :(得分:66)

事实证明,这是旧版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获得了最新版本,更具体地说是minifieddebug版本。

对于好奇,我在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();
 }

答案 1 :(得分:3)

删除MicrosoftAjax.js或MicrosoftAjax.debug.js可能会有所帮助,但只使用http://www.asp.net/ajaxlibrary/CDNAjax4.ashx中的当前版本替换文件也可以完成这项工作!