这两天,遇到这样一个问题, 网页在IE8/9下好好的,用IE11访问,布局就乱了, 切换到兼容模式又好了,一开始以为是显示的兼容性,后来用fiddle抓了一下服务器返回的 html内容,发现还真是不一样,返回给IE11的页面里,所有的内联 width属性都没有了(也可能还有其它不同)。看来是IE11和 .net4的兼容性问题。
两者请求的User-Agent也不相同,
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
在网上查了一下,与这个问题类似:
https://blogs.msdn.microsoft.com/scott_hanselman/2011/10/27/asp-netie10_dopostbackjavascript/ 错误与修复:ASP.NET无法检测IE10,导致_doPostBack未定义JavaScript错误 在跟随.NET 2.0和.NET 4一起发布的浏览器定义文件中有一个错误,也就是它们保存相当一部分浏览器版本的定义。但是浏览器的有些版本(比如IE10)不再在这个范围之内。因此,ASP.NET把它们看做是未知的浏览器,默认降级处理,这样就会给用户带来不便,比如不支持JavaScript特性。
或者参考: http://www.cnblogs.com/lxshanye/p/4072183.html
解决的办法是下载了一个 IE11.browser文件,放到网站下的App_Browsers目录下就好了。
内容如下
<browsers> <browser id="IE11" parentID="Mozilla"> <identification> <userAgent match="Trident\/7.0; rv:(?\'version\'(?\'major\'\d+)(\.(?\'minor\'\d+)?)(?\'letters\'\w*))(?\'extra\'[^)]*)" /> <userAgent nonMatch="IEMobile" /> </identification> <capture> <userAgent match="Trident/(?\'layoutVersion\'\d+)" /> </capture> <capabilities> <capability name="browser" value="IE" /> <capability name="layoutEngine" value="Trident" /> <capability name="layoutEngineVersion" value="${layoutVersion}" /> <capability name="extra" value="${extra}" /> <capability name="isColor" value="true" /> <capability name="letters" value="${letters}" /> <capability name="majorversion" value="${major}" /> <capability name="minorversion" value="${minor}" /> <capability name="screenBitDepth" value="8" /> <capability name="type" value="IE${major}" /> <capability name="version" value="${version}" /> </capabilities> </browser> <!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko --> <browser id="IE110" parentID="IE11"> <identification> <capability name="majorversion" match="11" /> </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> </browsers>