Asp.net服务器控件在IE10下的不兼容问题

时间:2013-05-16 09:07点击:

89 次 【

相信很多使用IE10的童鞋们已经发现了这个问题,以下是本人在IE10标准模式下发生的问题,声明:IE10不只有一个版本

1.服务器控件属性丢失,在aspx页面定义的TextBox:

  <asp:TextBox ID="txt" runat="server" Width="200" />

  在IE10标准模式下浏览发现宽度不对,遂打开源代码发现成这样了:

  <input name="txt" type="text" id="txt" /> width属性没了

2.偶尔发现页面报错__doPostBack找不到

目前就发现以上两点,第一反应就是兼容性问题,查了一些资料,果然是IE10的bug,不禁对微软的产品不满,新的浏览器尽然连自己的服务器控件都存在兼容性问题。

一般用户只需要设置浏览器在兼容模式下运行就可以解决了,但是开发人员怎么去解决这个问题呢?

VS项目里加App_Browsers文件夹,加ie.browser文件,文件内容帖下面的内容:

<browsers>
     <!-- Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4325) -->
     <browser id="IE6Plus" parentID="IE">
         <identification>
             <capability name="majorversion" match="^[6-9]|\d{2,}$" />
         </identification>
 
         <capabilities>
             <capability name="ecmascriptversion"    value="3.0" />
             <capability name="jscriptversion"       value="5.6" />
             <capability name="javascript"           value="true" />
             <capability name="javascriptversion"    value="1.5" />
             <capability name="msdomversion"         value="${majorversion}.${minorversion}" />
             <capability name="w3cdomversion"        value="1.0" />
             <capability name="ExchangeOmaSupported" value="true" />
             <capability name="activexcontrols"      value="true" />
             <capability name="backgroundsounds"     value="true" />
             <capability name="cookies"              value="true" />
             <capability name="frames"               value="true" />
             <capability name="javaapplets"          value="true" />
             <capability name="supportsCallback"     value="true" />
             <capability name="supportsFileUpload"   value="true" />
             <capability name="supportsMultilineTextBoxDisplay" value="true" />
             <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
             <capability name="supportsVCard"        value="true" />
             <capability name="supportsXmlHttp"      value="true" />
             <capability name="tables"               value="true" />
             <capability name="supportsAccessKeyAttribute"    value="true" />
             <capability name="tagwriter"            value="System.Web.UI.HtmlTextWriter" />
             <capability name="vbscript"             value="true" />
         </capabilities>
     </browser>
 
     <!-- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;) -->
     <browser id="IE6to9" parentID="IE6Plus">
         <identification>
             <capability name="majorversion" match="^[6-9]$" />
         </identification>
     </browser>
 
     <!-- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;) -->
     <browser id="IE7" parentID="IE6to9">
         <identification>
             <capability name="majorversion" match="^7$" />
         </identification>
         <capabilities>
             <capability name="jscriptversion" value="5.7" />
         </capabilities>
     </browser>
 
     <!-- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) -->
     <browser id="IE8" parentID="IE6to9">
         <identification>
             <capability name="majorversion" match="^8$" />
         </identification>
         <capabilities>
             <capability name="jscriptversion" value="6.0" />
         </capabilities>
     </browser>
 
     <!-- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) -->
     <browser id="IE9" parentID="IE6to9">
         <identification>
             <capability name="majorversion" match="^9$" />
         </identification>
         <capabilities>
             <capability name="jscriptversion" value="6.0" />
         </capabilities>
     </browser>
 
     <!-- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) -->
     <browser id="IE10Plus" parentID="IE6Plus">
         <identification>
             <capability name="majorversion" match="\d{2,}" />
         </identification>
         <capabilities>
             <capability name="jscriptversion" value="6.0" />
         </capabilities>
     </browser>
 
     <gateway id="IEbeta" parentID="IE">
         <identification>
             <capability name="letters" match="^([bB]|ab)" />
         </identification>
 
         <capture>
         </capture>
 
         <capabilities>
             <capability name="beta"    value="true" />
         </capabilities>
     </gateway>
 </browsers>

这是一种基于站点的修复方式,参考微软官方资料:

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

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

还有一种是打补丁,能解决服务器上所有站点的兼容性问题

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

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

另外博主在项目里用了大量的devexpress服务器控件,苦不堪言,虽然按照以上方式进行修复,VS自带的控件倒是没出现问题,但是dev控件却一大堆错误,最终还是没有修复,只能让用户使用兼容性模式。

Asp.net服务器控件在IE10下的不兼容问题的更多相关文章

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

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

  2. FCKEditor在IE10下的不兼容问题解决方法

    环境介绍:FCKEditor 版本 2.x.x 问题:IE10 下FCKEditor不兼容,显示不出来 关键词:不同于其他方法之处是第一个关键点,其他网友的正则表达式不对 解放方法:(可以直接< ...

  3. ASP.NET项目与IE10、IE11不兼容的解决办法

    1.解决办法 机器级别修复, 服务器所有ASP.NET程序受益 需要去微软下载对应asp.NET版本的修补程序 .NET 4 -http://support.microsoft.com/kb/2600 ...

  4. .NET在IE10下的回传BUG修复

    以前我也没注意到,直到有次公司新配了台机器做测试服务器,在测试过程中意外发现凡是涉及PostBack的操作仅在IE10下都无效,其他版本浏览器都没有问题,本机调试也没有问题. 这也就是说在程序相同的情 ...

  5. 向ASP.NET服务器控件中嵌入CSS资源

    Step1:于[项目解决方案]中右键新建[ASP.NET服务器控件]项目 Step2:于项目中添加[Resources]文件夹,于该文件夹下添加[CSS文件] Step3:单击该CSS文件,并将[属性 ...

  6. 自己写的一个ASP.NET服务器控件Repeater和GridView分页类

    不墨迹,直接上代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  7. Aspnetpage ie10下 __dopost方法未找到 不能翻页的问题

    1.问题分析: 没有__dopost 的原因是因为没有 ie10下 页面里 没有这个 方法,和 2个 input 标签,ie10 没有解析出来,所以就不能翻页了. 2.解决办法:(缺什么补什么,将这个 ...

  8. asp.net在网站根目录下创建文件夹

    假设要在asp.net网站的根目录下建立文件夹hovertree,C#代码如下: string m_keleyiFolderName = Server.MapPath("/hovertree ...

  9. 解决JSON.stringify()在IE10下无法使用的问题

    今天在IE10下遇到了JSON.stringify()无法使用的问题,错误信息为:'JSON' is undefined . 开始以为是没有添加json2.js引用的原因.后来发现,其他地方也没添加j ...

随机推荐

  1. 微信、QQ这类IM App怎么做——谈谈Websocket

    前言 关于我和WebSocket的缘:我从大二在计算机网络课上听老师讲过之后,第一次使用就到了毕业之后的第一份工作.直到最近换了工作,到了一家是含有IM社交聊天功能的app的时候,我觉得我现在可以谈谈 ...

  2. java模拟DVD管理器

    import java.util.*;import java.text.*;class DVDSet{    String[] name = new String[50]; //名字    int[] ...

  3. 2014 百度之星题解 1002 - Disk Schedule

    Problem Description 有非常多从磁盘读取数据的需求,包含顺序读取.随机读取.为了提高效率,须要人为安排磁盘读取.然而,在现实中,这样的做法非常复杂.我们考虑一个相对简单的场景. 磁盘 ...

  4. 【转】Enable ARC in a Cocos2D Project: The Step-by-Step-How-To-Guide Woof-Woof!

    On April 5, 2012, in idevblogaday, by Steffen Itterheim http://www.learn-cocos2d.com/2012/04/enablin ...

  5. Linux 精准获取进程pid--转

    如果想在脚本里只获取PID,那么可以用如下脚本.目前收集两种方法: 方法一 $ps x|grep xxx  |awk '{print $1}' e.g. ps x|grep java |awk '{p ...

  6. android开发之国际化

    国际化,听起来高大上,做起来很简单. 我们来实现一个简单的效果,让应用根据系统的语言来做不同的显示,假如android系统默认是英语,应用就以英文的形式显示,如果android系统默认是中文,则应用就 ...

  7. web服务构架

    以我的理解大流量电商网站,一般构架如下: CDN 负载均衡集群 < === >  缓存服务器集群 反向代理服务器集群 web服务器集群(日志采集) < === > 缓存系统集群 ...

  8. bootstrap-datetimepicker 时间表箭头不能显示

    我使用的是bootstrap-datetimepicker+bootstrap v3,但这个插件使用的时候,并没有和V3相匹配,仍然调用的是bootstrap V2的图标,代码是: <i cla ...

  9. asp.net 调用前台JS调用后台,后台掉前台JS

    C#前台js调用后台代码前台js<script type="text/javascript" language="javascript"> func ...

  10. Big Data 應用:第二季(4~6月)台湾地区Game APP 变动分布趋势图

    图表简介: 该示意图表示了台湾地区第二季内所有Game APP类别的分布情形,经由该图表我们可以快速的了解到在这三个月内,哪类型的APP是很稳定:抑或者哪类型的APP是非常不稳定的. 名词解释: 类别 ...