web-dev-qa-db-ja.com

Force IE 11タグを使用した「ユーザーエージェント文字列」

IE11で私のウェブサイトが壊れています。

HTMLタグにより、開発者は強制的にIE互換モード;例では

<meta http-equiv="X-UA-Compatible" content="IE=8, IE=9" />

うまく機能し、IE10の視覚化の問題を解決しました。

しかし、実際にIE11では、たとえCompatibility mode に設定されています IE9User agent stringdefaultに設定され、javascriptは機能しません。手動で変更するUser agent stringからIE10私の問題を解決しました。

Shureでは、Webサイトエラーの原因となる実際の問題を解決しますが、実際には「ユーザーエージェント文字列」をIE10に強制する高速でプログラム的な方法が必要です。すべてのユーザーに連絡できないためです。 。

誰か助けてもらえますか?

18
Emanuele Greco

解決済み!Webサイトは、サーバーにDotnetフレームワーク4.5をインストールするだけです


実際に、ユーザーエージェント文字列をプログラムでブラウザーに強制する方法は見つかりませんでした(これが元の質問でした)。しかし、0コードでウェブサイトを修復しました。

多くのテストを行ったところ、あるサーバーではWebサイトが機能していることがわかりましたが、他のサーバーでは機能していませんでした。

良好なサーバー」はWin2012であり、「不良なサーバー」 Win2008でした。 Win2012ではAspnet 4.5が実行されていましたが、Win2008では実行されませんでした。

dotnet framework 4.5をインストール済み onbad serversも、すべてが機能し始めました!

5
Emanuele Greco

また、2003年のWindowsサーバーで.net framework 4.0を使用して同じ問題に直面し、長い調査の後、以下が役立つことがわかりました...

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>
16
Subhranshu

.NET Framework 4.5全体をインストールしたくない場合は、Microsoftからのこの修正で.NET Framework 4.0を更新するだけです http://www.Microsoft.com/en-us/download/confirmation .aspx?id = 39257 私の場合、これは完全に機能しました。

1
Ion Gritco

WebConfigにコードを配置:2017-2018での作業

  <system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="X-UA-Compatible" value="IE=Edge" />
    </customHeaders>
  </httpProtocol>
  </system.webServer>
0
Thwyster