【问题标题】:Firefox 6 Infinite Page Refresh With Page With Hash TagsFirefox 6 无限页面刷新,带有标签的页面
【发布时间】:2012-06-13 23:47:20
【问题描述】:

当 Firefox 最近更新到版本 6 时,我正在处理的一个网站严重崩溃。

网站在浏览到任何页面时正常运行没有哈希标签,但如果您尝试导航到带有哈希标签的页面(例如#test)或刷新页面一次哈希标签应用后,页面会尽可能快地无限刷新。

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

【问题讨论】:

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


    【解决方案1】:

    原来,这是旧版本的 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 文件中追踪了问题。

    buggy 版本包括:

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

    【讨论】:

    • 哇。谢谢你。几天前我遇到了这个问题,没想到 javascript 会成为问题......我很幸运地发现了这个问题,现在它已经修复了。
    • 感谢您解决这个问题,这为我节省了大量时间!
    • 您可以在 MS CDN 页面asp.net/ajaxlibrary/CDNAjax4.ashx 上找到指向最新 .js 文件的链接。
    • 我的症状完全相同,但我使用的是 jQuery 而不是 MicrosoftAjax.debug.js。你知道有什么解决办法吗?
    • 此问题/解决方案专门针对 MicrosoftAjax。您不必使用它,但如果在页面上完全引用它,就会发生此问题。如果根本没有引用,那我就不知道了=)
    【解决方案2】:

    删除 MicrosoftAjax.js 或 MicrosoftAjax.debug.js 可能会有所帮助,但只需将文件替换为 http://www.asp.net/ajaxlibrary/CDNAjax4.ashx 的当前版本即可!

    【讨论】:

      猜你喜欢
      • 2012-06-07
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      相关资源
      最近更新 更多