Sé que IE 11 tiene una cadena de agente de usuario diferente a todos los demás IE
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
Intenté detectar IE 11 con la respuesta especificada para esta pregunta '
Eso es !!navigator.userAgent.match(/Trident\/7\./)
Pero estoy recibiendo un error
Object not found and needs to be re-evaluated.
Luego abrí la consola de desarrollador en IE11 e intenté acceder a algunos objetos javascript predefinidos, sigo recibiendo el mismo error.
Yo he tratado
navigator.userAgent
window.navigator
console.log('test');
¿Alguien tiene alguna idea al respecto?
javascript
internet-explorer
internet-explorer-11
Miqdad Ali
fuente
fuente
Object not found and needs to be re-evaluated.
Respuestas:
Editar 18 nov 2016
Este código también funciona ( para aquellos que prefieren otra solución, sin usar ActiveX )
Respuesta original
Para verificar Ie11, puede usar esto: (probado)
(o ejecuta esto )
!(window.ActiveXObject) && "ActiveXObject" in window
Tengo todos los VMS de IE:
Aviso: esto no funcionará para IE11:
como puede ver aquí, devuelve verdadero:
Entonces, qué podemos hacer :
Aparentemente, agregaron el espacio de bits de la máquina:
ie11:
ie12:
para que podamos hacer:
esto devolverá verdadero solo para ie11.
fuente
x64
devuelve Chrome y Edgewindow.MSInputMethodContext
.Para detectar MSIE (de la versión 6 a la 11) rápidamente:
fuente
indexOf()
será> -1
?Utilizo la siguiente función para detectar la versión 9, 10 y 11 de IE:
fuente
Todas las respuestas anteriores ignoran el hecho de que mencionas que no tienes ventana ni navegador :-)
y ahí es donde dice
y navegador, ventana, consola, ninguno de ellos existe y necesita ser reevaluado. Lo he tenido en emulación. simplemente cierre y abra la consola unas cuantas veces.
fuente
Una forma bastante segura y concisa de detectar solo IE 11 es
if(window.msCrypto) { /* I'm IE11 for sure */ }
o algo como esto
var IE11= !!window.msCrypto;
msCrypto
es una versión prefijada delwindow.crypto
objeto y solo se implementa en IE 11.https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto
fuente
/x64|x32/ig.test(window.navigator.userAgent)
aplica a Firefox!Y como implementé esto
fuente
&& "ActiveXObject" in window
. Tercero: ¿cuál es el truco con la doble negación!!
?Bien, intente esto, simple y para IE11 e IE por debajo de la versión 11
navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1
para la versión IE 11navigator.userAgent.toUpperCase().indexOf("MSIE") != -1
para IE por debajo de la versión 11fuente
Este enlace fue útil . Contiene el código javascript para detectar todas las versiones de IE hasta IE11. Probé el script con el emulador IE11. Para encontrar el emulador de IE11, haga clic con el botón derecho en el navegador web y haga clic en "Inspeccionar elemento". En la parte inferior izquierda de la página, desplácese hacia abajo en la barra de navegación y haga clic en el icono del escritorio. El cuadro desplegable "Cadena de agente de usuario" contiene opciones para emular IE6-11.
Funciona. Lo usé unos minutos antes de escribir esta respuesta. No se pueden publicar instantáneas, no hay suficiente reputación.
Este es el código; siga el enlace para verlo nuevamente:
fuente
El uso de esta expresión regular parece funcionar para IE 10 e IE 11:
No tengo un IE anterior a IE 10 para probar esto.
fuente
Usar navegador: -
El
navigator
es un objeto que contiene toda la información sobre el navegador de la máquina cliente.navigator.appName
devuelve el nombre del navegador de la máquina cliente.fuente
Descubrí que IE11 proporciona más de una cadena de agente de usuario en diferentes entornos.
En lugar de confiar en
MSIE
otros enfoques, es mejor confiar en laTrident
versiónEspero que esto ayude :)
fuente