javascript - online - Forzar IE 11 "cadena de agente de usuario" utilizando etiquetas
test internet explorer (4)
Mi sitio web está roto en IE11.
Todos sabemos que las etiquetas HTML permiten al desarrollador forzar el modo de compatibilidad de IE; por ejemplo
<meta http-equiv="X-UA-Compatible" content="IE=8, IE=9" />
Funcionó muy bien y resolvió los problemas de visualización para IE10.
Pero en realidad en IE11, incluso si el Compatibility mode
está configurado en IE9
, User agent string
está configurada en default
y el javascript no funciona. Cambiar manualmente User agent string
a IE10
solucionó mis problemas.
Por supuesto, voy a resolver los problemas reales que causan errores en el sitio web, pero en realidad necesito una forma rápida y programática de forzar la "cadena de agente de usuario" a IE10 , ya que no puedo contactar a todos los usuarios.
¿Alguien puede ayudar?
Ponga el código en su WebConfig: Trabajando en 2017-2018
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=Edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Si no desea instalar todo el .NET Framework 4.5, puede actualizar el .NET Framework 4.0 con esta solución desde Microsoft http://www.microsoft.com/en-us/download/confirmation.aspx?id=39257 En mi caso esto funcionó perfectamente.
También enfrenté el mismo problema en mi servidor Windows 2003 con .net framework 4.0 y, después de una larga investigación, encontré que lo siguiente es útil ...
Creé la carpeta App_Browsers y puse un archivo de navegador llamado ie.browser y pegué el texto de definición del navegador que se encuentra debajo y comenzó a funcionar.
<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>
Resuelto El sitio web está listo simplemente instalando Dotnet framework 4.5 en el servidor
En realidad, no encontré una forma de forzar a los navegadores mediante programación en forma de cadena de agente de usuario (esta era la pregunta original). Pero el sitio web reparado con código 0 ..
Simplemente hice muchas pruebas y en un servidor descubrí que el sitio web estaba funcionando, en otro servidor no.
El " buen servidor " era un Win2012, y los " malos servidores " eran Win2008. En Win2012 se estaba ejecutando Aspnet 4.5 y en Win2008 no.
También instalé dotnet framework 4.5 en servidores malos , ¡y todo comenzó a funcionar!