Ema*_*eco 18 javascript compatibility internet-explorer cross-browser internet-explorer-11
我的网站在IE11中被破坏了.
我们都知道HTML标签允许开发人员强制IE兼容模式; 在例子中
<meta http-equiv="X-UA-Compatible" content="IE=8, IE=9" />
Run Code Online (Sandbox Code Playgroud)
工作得很好,解决了IE10的可视化问题.
但实际上在IE11上,即使Compatibility mode
设置为IE9
,User agent string
也设置为default
javascript不起作用.手动更改User agent string
以IE10
解决我的问题.
为了舒尔,我将解决导致网站错误的真正问题,但实际上我需要一种快速的,编程方式强制"用户代理字符串"到IE10,因为我无法联系每个用户.
有人可以帮忙吗?
小智 17
我在使用.net framework 4.0的2003 Windows服务器上也遇到了同样的问题,经过长时间的研究后我发现以下内容很有帮助......
我创建了App_Browsers文件夹,并放了一个名为ie.browser的浏览器文件,并粘贴了下面的浏览器定义文本,它开始工作了
<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>
Run Code Online (Sandbox Code Playgroud)
解决了!网站刚刚在服务器上安装Dotnet framework 4.5
实际上我没有找到一种方法来强制编程浏览器用户代理字符串(这是原始问题).但修复网站0代码..
刚做了很多测试,在一台服务器上我发现该网站正在运行,而在其他服务器上却没有.
" 好的服务器 "是Win2012," 坏的服务器 "是Win2008.在Win2012上,Aspnet 4.5正在运行,而在Win2008上却没有.
我也在坏服务器上安装了dotnet framework 4.5,一切都开始工作了!
归档时间: |
|
查看次数: |
33477 次 |
最近记录: |