Je sais que IE 11 a une chaîne d'agent utilisateur différente de celle de tous les autres IE
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
J'ai essayé de détecter IE 11 avec la réponse spécifiée pour cette question '
Jquery ne parvient pas à détecter IE 11
C'est !!navigator.userAgent.match(/Trident\/7\./)
Mais je reçois une erreur
Object not found and needs to be re-evaluated.
Ensuite, j'ai ouvert la console de développeur dans IE11 et essayé d'accéder à certains objets javascript prédéfinis, j'obtiens toujours la même erreur.
j'ai essayé
navigator.userAgent
window.navigator
console.log('test');
Quelqu'un en a une idée?
javascript
internet-explorer
internet-explorer-11
Miqdad Ali
la source
la source
Object not found and needs to be re-evaluated.
Réponses:
Modifier le 18 novembre 2016
Ce code fonctionne également ( pour ceux qui préfèrent une autre solution, sans utiliser ActiveX )
Réponse originale
Afin de vérifier Ie11, vous pouvez utiliser ceci: (testé)
(ou exécutez ceci )
!(window.ActiveXObject) && "ActiveXObject" in window
J'ai tous les VMS d'IE:
Remarque: cela ne fonctionnera pas pour IE11:
comme vous pouvez le voir ici, il renvoie vrai:
Alors, que pouvons-nous faire :
Apparemment, ils ont ajouté l'espace de bits de la machine:
ie11:
ie12:
afin que nous puissions faire:
cela ne retournera vrai que pour ie11.
la source
x64
renvoie Chrome et Edgewindow.MSInputMethodContext
.Pour détecter rapidement MSIE (de la version 6 à la version 11):
la source
indexOf()
être> -1
?J'utilise la fonction suivante pour détecter les versions 9, 10 et 11 d'IE:
la source
Toutes les réponses ci-dessus ignorent le fait que vous mentionnez que vous n'avez pas de fenêtre ou de navigateur :-)
et c'est là que ça dit
et navigateur, fenêtre, console, aucun d'entre eux n'existe et doit être réévalué. J'ai eu ça en émulation. fermez et ouvrez la console quelques fois.
la source
Un moyen assez sûr et concis de détecter uniquement IE 11 est
if(window.msCrypto) { /* I'm IE11 for sure */ }
ou quelque chose comme ça
var IE11= !!window.msCrypto;
msCrypto
est une version préfixée de l'window.crypto
objet et implémentée uniquement dans IE 11.https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto
la source
/x64|x32/ig.test(window.navigator.userAgent)
s'applique également à Firefox!Et comment j'ai implémenté cela
la source
&& "ActiveXObject" in window
. Troisièmement: quel est le truc avec la double négation!!
?OK, essayez ceci, simple et pour IE11 et IE sous la version 11
navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1
pour la version IE 11navigator.userAgent.toUpperCase().indexOf("MSIE") != -1
pour la version IE inférieure à 11la source
Ce lien a été utile . Il contient le code javascript pour détecter toutes les versions d'IE jusqu'à IE11. J'ai testé le script avec l'émulateur IE11. Pour trouver l'émulateur IE11, cliquez avec le bouton droit sur le navigateur Web et cliquez sur "Inspecter l'élément". En bas à gauche de la page, faites défiler la barre de navigation vers le bas et cliquez sur l'icône du bureau. La liste déroulante "Chaîne de l'agent utilisateur" contient des options pour émuler IE6-11.
Ça marche. Je viens de l'utiliser quelques minutes avant d'écrire cette réponse. Impossible de publier des instantanés - réputation insuffisante.
Voici le code - suivez le lien pour le voir à nouveau:
la source
L'utilisation de ce RegExp semble fonctionner pour IE 10 et IE 11:
Je n'ai pas d'IE plus ancien que IE 10 pour tester cela.
la source
Utilisez Navigator: -
Le
navigator
est un objet qui contient toutes les informations sur le navigateur de la machine cliente.navigator.appName
renvoie le nom du navigateur de la machine cliente.la source
J'ai trouvé que IE11 donne plus d'une chaîne d'agent utilisateur dans différents environnements.
Au lieu de s'appuyer sur
MSIE
et d'autres approches, il est préférable de s'appuyer sur laTrident
versionJ'espère que cela t'aides :)
la source