Asp.net mvc 2 Firefox 6无限页面刷新,带有哈希标记的页面
当Firefox最近更新到版本6时,我正在开发的一个网站严重崩溃 当浏览到没有哈希标记的任何页面时,网站正常运行,但如果您尝试导航到带有哈希标记的页面(例如,Asp.net mvc 2 Firefox 6无限页面刷新,带有哈希标记的页面,asp.net-mvc-2,firefox,microsoft-ajax,Asp.net Mvc 2,Firefox,Microsoft Ajax,当Firefox最近更新到版本6时,我正在开发的一个网站严重崩溃 当浏览到没有哈希标记的任何页面时,网站正常运行,但如果您尝试导航到带有哈希标记的页面(例如,#test)或在应用哈希标记后刷新页面,页面将以尽可能快的速度无限刷新 这是一个大约一年半前创建的Asp.NETMVC2站点 事实证明,这是旧版本MicrosoftAjax.js(随Asp.Net MVC 2一起安装)的一个问题 打开MicrosoftAjax.debug.js文件并检查文件版本号。如果这是您的问题,则此文件的顶部将如下所示
#test
)或在应用哈希标记后刷新页面,页面将以尽可能快的速度无限刷新
这是一个大约一年半前创建的Asp.NETMVC2站点 事实证明,这是旧版本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升级到最新版本,问题就会消失。正如在的评论中提到的,我从中获得了最新版本,更具体地说是和版本
出于好奇,我在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();
}
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();
}
删除MicrosoftAjax.js或MicrosoftAjax.debug.js可能会有所帮助,但只需将文件替换为中的当前版本也可以 哇。谢谢你。几天前我遇到了这个问题,没想到javascript会成为问题。。。幸运的是,我发现了这个问题,并大声呼喊,现在问题已经解决了。谢谢你解决了这个问题,这节省了我很多时间!您可以在MS CDN页面上找到指向最新.js文件的链接。我有完全相同的症状,但我使用jQuery而不是MicrosoftAjax.debug.js。你知道有什么解决方案吗?这个问题/解决方案是专门针对MicrosoftAjax的。您不必使用它,但如果它在页面上被引用,则会发生此问题。如果它根本没有被引用,那么我不知道=)