相信很多使用IE10的童鞋都已经发现了这个问题。以下是我在IE10标准模式下的问题。声明:IE10不止一个版本。
1.缺少服务器控件属性,并且aspx页中定义的TextBox:
<ASP:TextBoxID="txt"runat="server"Width="200"/>;
在IE10标准模式下浏览发现宽度不对,于是打开源代码发现了这个:
<inputname="txt"type="text"id="txt"/>;宽度属性消失了。
2.偶尔发现页面报错__doPostBack找不到
目前发现以上两点,第一反应是兼容性问题。查了一些资料,原来是IE10的bug,不禁对微软的产品产生了不满。新的浏览器甚至与它自己的服务器控件也有兼容性问题。
一般用户只需要设置自己的浏览器在兼容模式下运行,但是开发者如何解决这个问题呢?
将App_Browsers文件夹添加到项目VS中,添加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>这是一种基于站点的修复方法,参考微软官方数据:
。NET4浏览器更新NuGet包-http://nuget.org/list/packages/app_browsers更新
。NET2.0浏览器更新NuGet包-http://nuget.org/list/packages/app_browsersupdate.NET20
还有一个就是打补丁,可以解决服务器上所有站点的兼容性问题。
。净4-http://support.microsoft.com/kb/2600088
。NET2.0-http://support.microsoft.com/kb/2600100
另外,博主在项目中大量使用了devexpress服务器控件,惨不忍睹。虽然VS带来的控件经过上述方式修复后并没有出现问题,但是dev控件出现了大量错误,最终并没有修复,所以用户只能使用兼容模式。
我只希望微软在发布下一个版本的浏览器时能够修复这个问题。
补充,在web.config里加HTTP响应标头改变浏览器呈现模式参考资料:
http://www.IIS.net/configreference/system.webserver/httpprotocol/customheaders
http://msdn.microsoft.com/zh-cn/library/bb763179.aspx
http://blogs.msdn.com/b/webtopics/archive/2008/09/05/configuring-IIS-to-work-around-网页-显示-问题-起因于internet-explorer-8-0.aspx
<configuration> <system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=EmulateIE7" /> </customHeaders> </httpProtocol> </system.webServer> </configuration>欢迎分享,转载请注明来源:内存溢出
评论列表(0条)