浏览器版本号继续升级过程中。IE9诞生了,IE10 也即将问世火狐5和6已经发布了,而7和8也快出现了,Opera已经到了11,Chrome还在继续,我也不知道,应该总在14和50之间吧。不管怎样,不出意外版本号应该都会达到99。

在跟随.NET 2.0和.NET 4一起发布的浏览器定义文件中有一个错误,也就是它们保存相当一部分浏览器版本的定义。但是浏览器的有些版本(比如IE10)不再在这个范围之内。因此,ASP.NET把它们看做是未知的浏览器,默认降级处理,这样就会给用户带来不便,比如不支持JavaScript特性。

如果你想亲自看看,那就创建一个全新的空白的网站(可以在Visual Studio 2010中试一下),添加一个需要JavaScript回调的控件(例如:<asp:LinkButton>),然后用IE9来运行站点(这是可行的)。再用IE10来运行(这就不行了)。查看一下页面源代码,比较一下发送到两个版本的浏览器的HTML和JavaScript。

火狐5也遇到上述相似的问题,也就是无法检测在浏览器中使用JavaScript重定位滚动条。这与为Web Form 页面而设的MaintainScrollbackPositionOnPostBack属性不符。

这些“无法检测”错误在ASP.NET 2和ASP.NET4中都影响了Web Form页面。如果你使用的是ASP.NET Web页面,或者是ASP.NET MVC,但没有用浏览器对象去检测JavaScript支持,那你就不再受影响的范围内。

修复

有两种修复这个错误的方法:一个就是整体修复,另一个就是单独修复每个站点。

整体修复

我们正准备发布一个Hotfix来修复这些问题,你可以通过KB文章来获取。这些有修复 KB在一周内就会公布了。它们可以再一部机器上永久解决所有页面浏览器检测问题。这些修复也会在以后版本的framework中运用,最终会成为一个Windows更新。

· .NET 4 - http://support.microsoft.com/kb/2600088

·

· .NET 2.0 - http://support.microsoft.com/kb/2600100

修复所做的就是更新IE.浏览器和火狐浏览器的文件(路径:\Windows\Microsoft.NET\Framework\<version>\Config\Browsers), 加上最新和未��已定义的版本号。不会影响其他任何东西。

单站点修复

如果你无法访问整部机器,或者只想更新单一的项目,那就通过NuGet安装App_BrowsersUpdate包吧。然后你在方案浏览器(Solution Explorer)中的页面结构就会如右图所示。注意NuGet使用的是.NET 4,所以对于那些只有.NET 2的系统来说,你就还要获取 ZIP文件,手动将新浏览器文件添加至App_Browsers目录。

· .NET 4 浏览器更新 NuGet 包 - http://nuget.org/List/Packages/App_BrowsersUpdate

· 安装包 App_BrowsersUpdate

· .NET 2.0 浏览器更新 NuGet 包 - http://nuget.org/List/Packages/App_BrowsersUpdate.net20

· 安装包 App_BrowsersUpdate.net20

· 注意NuGet是VS2010特定版的,所以如果你没有nuget.exe和.NET 4,你也可以手动地从这个zip文件中直接复制.NET 2的更新浏览器文件到~\App_Browsers.

要修复这个问题更新整部机器更可取。

总结

· ASP.NET 可能无法辨识出一些浏览器的最新版本,还会经常把它们看做是低级的浏览器。(也就是: 不支持JavaScript。)

· 修复是指更新浏览器定义文件。

· 你可以安装整体修复或者单一修复某些项目。

· Hotfix会在几周内问世。KB文章会届时提供下载链接。

· 这些文件也会是之后.NET 4修复的一部分,预期也会在2012年1月通过Windows更新推送给用户。

· 下一版本的.NET framework会包括所有的更新文件。

我上传了已经更新的firefox.browser和ie.browser文件,,这些文件预计会在下一版本的ASP.NET中添加。文件和源代码在我的BitBucket repo中。如果你想了解详情,可以去看看。

***********************************************************************************************
 *【Author】:Scott Hanselman
 *【Date】:2013年07月17日
 *【URL】:http://blogs.msdn.com/b/scott_hanselman/archive/2011/10/28/asp-net-ie10-dopostback-javascript-ff5.aspx
 *【Notice】:
 *1、本文为原创技术文章,首发博客园个人站点。
 *2、转载和引用请注明作者及出处。
 *3、本文必须全文转载和引用,任何组织和个人未授权不能修改任何内容,并且未授权不可用于商业。
 *4、本声明为文章一部分,转载和引用必须包括在原文中。
 ***********************************************************************************************

错误与修复:ASP.NET无法检测IE10,导致_doPostBack未定义JavaScript错误,恒处于FF5卷动条位置的更多相关文章

  1. 错误与修复:ASP.NET无法检测IE10,IE11,导致_doPostBack未定义JavaScript错误,恒处于F5卷动条位置

    <browsers>  <browser id="IE11" parentID="Mozilla">    <identifica ...

  2. ASP.NET无法检测IE10浏览器,导致无法登录

    今天发现在IE10中打开我开发的网站时,无法登入,页面总会自动重新退出到登录页,后经上网查资料发现这是ASP.NET 2.0.3.5和4.0的Bugs,因这些版本的.NET Framework无法识别 ...

  3. ASP.Net IE10+ SCRIPT:XXX_doPostBack 未定义

    问题描述 GridView中分页控件,点击分页无反应,Linkbutton点击无反应,打开Web控制台,发现如下错误:SCRIPTXXX:_doPostBack 未定义:查询后得知,是由于.NET F ...

  4. 【.NET】ASP.Net IE10+ SCRIPT:XXX_doPostBack 未定义

    问题描述 GridView中分页控件,点击分页无反应,Linkbutton点击无反应,打开Web控制台,发现如下错误:SCRIPTXXX:_doPostBack 未定义:查询后得知,是由于.NET F ...

  5. .Net IE10 _doPostBack 未定义

    问题描述:用.Net写的LinkButton触发后台是js报错:_doPostBack 未定义 网上资料显示这种情况是当前framework不能识别IE10版本,把该浏览器做降级处理导致JS错误,解决 ...

  6. ASP.NET服务器控件在IE10浏览器(非兼容模式)下报脚本错误的可能解决办法

    关于IE10出现LinkButton点击无效的情况:        一般高配置的系统如Win7旗舰版SP1系统不会出现这种情况,针对家庭普通版和专业版的用户通过测试都有这种情况,对于开发人员要解决不同 ...

  7. ASP.NET WebForm 与 IE10、IE11

    最近维护公司一个烂项目.NET4.0 Asp.Net WebForm(在MVC5泛滥的今天还有用WebForm的(⊙o⊙)…) IE10.IE11下aspx中大表单提交不上去,报_DoPostBack ...

  8. .Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。

    方法一.浏览器设置成兼容模式. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/5653325/6642051 方法三.点击VS的工具菜单-- ...

  9. IE10、IE11出现“__doPostBack未定义”的解决办法。

    方法一:浏览器设置成兼容模式,这个是超级掩耳盗铃方法,你就没想过其他人也会出这个问题. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/565 ...

随机推荐

  1. HDU5071 - Chat(STL模拟)

    题目描述 略... 题解 现场赛的时候真是脑残...用splay去写..写完发现调试不出来...然后才发现数据范围才5000...不过那时候只有40分钟了..用数组模拟了速度敲了一发.写完只剩10几分 ...

  2. linux 和 android 源码的 cross reference (即网页浏览代码的引用)

    linux: http://lxr.free-electrons.com/               相当好 android: http://androidxref.com

  3. JAVA中的常见面试题1

    1.线程同步的方法的使用. sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常. wait():使一个线程处于等待状态,并且 ...

  4. Win7下使Users数据与程序分离

    大家知道,数据是用户最大的财富,但Windows系统默认的模式是将所有软件都安装在C盘,在Windows XP时代,数据文件夹会放在Document And Setting 目录下,在Win7时代,数 ...

  5. ZOJ 4114 Detect the Virus(AC自动机)

    Detect the Virus Time Limit: 2 Seconds      Memory Limit: 65536 KB One day, Nobita found that his co ...

  6. SaltStack 最新版WebUI部署

    saltstack web uiweb平台界面 saltapi项目主页:http://salt-api.readthedocs.org/en/latest/ halite 项目主页:https://g ...

  7. UIImage 相关操作

    修改UIImage大小 修改UISlider的最大值和最小值图片的时候,发现需要修改图片的大小,否则会导致UISlider变形.目前苹果还不支持直接修改UIImage类的大小,只能修改UIImageV ...

  8. TypeScript学习笔记(七):模块

    JavaScript中的模块 在学习TypeScript的模块之前我们先看看在JavaScript中的模块是如何实现的. 模块的好处 首先我们要了解使用模块的好处都有什么? 模块化.可重用: 封装变量 ...

  9. [置顶] 很荣幸被选为2013年度 CSDN博客之星评选,如果觉得我的文章可以,请投我一票!

    亲爱的小伙伴们,很荣幸我被选为<2013年度CSDN博客之星候选人>,希望大家多多支持,geekguy会继续努力,为大家奉献更好的文章. 投票地址:http://vote.blog.csd ...

  10. 剑指OFFER之矩形覆盖(九度OJ1390)

    题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入 ...