使用标记强制IE 11"用户代理字符串"

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也设置为defaultjavascript不起作用.手动更改User agent stringIE10解决我的问题.

为了舒尔,我将解决导致网站错误的真正问题,但实际上我需要一种快速的,编程方式强制"用户代理字符串"到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)

  • 对不起,但在使用IE11的Server 2003上没有任何帮助. (2认同)

Ema*_*eco 5

解决了!网站刚刚在服务器上安装Dotnet framework 4.5


实际上我没有找到一种方法来强制编程浏览器用户代理字符串(这是原始问题).但修复网站0代码..

刚做了很多测试,在一台服务器上我发现该网站正在运行,而在其他服务器上却没有.

" 好的服务器 "是Win2012," 坏的服务器 "是Win2008.在Win2012上,Aspnet 4.5正在运行,而在Win2008上却没有.

我也在坏服务器安装了dotnet framework 4.5,一切都开始工作了!