web-dev-qa-db-fra.com

Obliger IE 11 "Chaîne d'agent utilisateur" à l'aide de balises

Mon site est cassé dans IE11. 

Nous savons tous que les balises HTML permettent aux développeurs de forcer le mode de compatibilité IE; par exemple

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

a bien fonctionné et a résolu les problèmes de visualisation pour IE10.

Mais en réalité sur IE11, même si Compatibility mode est défini sur IE9, User agent string est défini sur default et que javascript ne fonctionne pas . Changer manuellement User agent string en IE10 a résolu mes problèmes.

Bien sûr, je vais résoudre les vrais problèmes qui causent des erreurs sur les sites Web, mais en réalité J'ai besoin d'un moyen rapide et programmatique pour forcer "Chaîne d'agent d'utilisateur" à IE10 , car je ne peux pas contacter tous les utilisateurs.

Quelqu'un peut aider?

18
Emanuele Greco

Résolu! Le site Web est en place, il suffit d’installer Dotnet Framework 4.5 sur le serveur


En fait, je n’ai pas trouvé de moyen de forcer par programmation la chaîne d’agent utilisateur des navigateurs (c’était la question initiale). Mais site réparé avec 0 code .. 

Je viens de faire beaucoup de tests et sur un serveur, j'ai découvert que le site Web fonctionnait, mais pas sur un autre serveur. 

Le "bon serveur" était un Win2012 et "mauvais serveurs" était un Win2008. Aspnet 4.5 fonctionnait sous Win2012, mais pas sous Win2008.

J'ai installé Dotnet Framework 4.5 sur mauvais serveurs aussi, et tout a commencé à fonctionner!

5
Emanuele Greco

J'ai également rencontré le même problème dans mon serveur Windows 2003 avec .net Framework 4.0 et après une longue recherche, j'ai trouvé que le texte ci-dessous était utile ...

J'ai créé le dossier App_Browsers et mis un fichier de navigateur nommé ie.browser et collé le texte de définition de navigateur ci-dessous. Il a commencé à fonctionner.

<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

Si vous ne souhaitez pas installer l'intégralité du .NET Framework 4.5, vous pouvez simplement mettre à jour le .NET Framework 4.0 avec ce correctif de Microsoft http://www.Microsoft.com/en-us/download/confirmation.aspx ? id = 39257 Dans mon cas, cela fonctionnait parfaitement.

1
Ion Gritco

Mettez le code dans votre WebConfig: Travailler en 2017-2018

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