59 votes

Comment cibler uniquement Internet Explorer 11 avec JavaScript

Quelle est la meilleure façon de cibler IE11 avec JavaScript?

Remarque: cela ne devrait être fait que pour l'analyse ou informer l'utilisateur du type de navigateur utilisé. Pour tout le reste, il y a détection de fonctionnalités.

90voto

dystroy Points 145126

La chaîne User-agent pour IE 11 est actuellement celle-ci:

 Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
 

Ce qui signifie que vous pouvez simplement tester, pour les versions 11.xx,

 var isIE11 = !!navigator.userAgent.match(/Trident.*rv[ :]*11\./)
 

Comme l'agent utilisateur IE10 était

 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
 

il est probablement aussi sûr de parier sur le fait que maintenant Trident/X est censé être le vrai versionning.

28voto

dave1010 Points 6595

IE11 conserve "Trident" dans sa chaîne UA, mais abandonne MSIE. Un moyen simple de détecter le navigateur est IE11 ou une version ultérieure (IE12, IE13, etc.):

 var isAtLeastIE11 = !!(navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE/));
 

Si vous voulez juste IE11 (et que vous ne voulez pas que les versions futures d'IE correspondent), procédez comme suit:

 var isIE11 = !!(navigator.userAgent.match(/Trident/) && navigator.userAgent.match(/rv 11/));
 

4voto

Florian Margaine Points 16927
 var isIE11 = !!navigator.userAgent.match(/Trident\/7.0; rv 11/);
 

Source: http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/

2voto

Rohan Kumar Points 18192

Essaye ça,

 navigator.sayswho= (function(){
   var N= navigator.appName, ua= navigator.userAgent, tem;
   var M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
   if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
   M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?'];
   return M;
})();
 

Source de la détection du navigateur en javascript?

Mis à jour pour IE = 11

Utilisez ceci

 var isIE11 = navigator.userAgent.match(/Trident\/7.0; rv 11.0/);
 

Lisez ceci http://msdn.microsoft.com/en-us/library/ie/bg182625%28v=vs.85%29.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X