Comment puis-je cibler seulement Internet Explorer 11 avec JavaScript?
Quelle est la façon la moins sujette aux erreurs de cibler IE11 avec JavaScript?
Note: cela ne devrait être fait que pour analyser ou informer l'utilisateur du navigateur qu'il utilise. Pour tout le reste, il y a la détection de fonctionnalités.
7 réponses
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
Windows 10 exemple:
Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko
ce qui signifie que vous pouvez simplement tester, pour les versions 11.xx,
var isIE11 = /Trident.*rv[ :]*11\./.test(navigator.userAgent);
Comme IE10 agent utilisateur a été
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.
IE11 garde "Trident" dans sa chaîne UA, mais laisse tomber MSIE. Un moyen simple de détecter le navigateur est IE11 ou plus (IE12, IE13, etc) est:
var isAtLeastIE11 = !!(navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE/));
Si vous voulez juste IE11 (et vous ne voulez pas que les futures versions de IE de match), faites ceci:
var isIE11 = !!(navigator.userAgent.match(/Trident/) && navigator.userAgent.match(/rv[ :]11/));
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 /
Essayez cette,
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 détection par navigateur en JavaScript?
mis à jour pour IE=11
utiliser cette
var isIE11 = navigator.userAgent.match(/Trident\/7.0; rv 11.0/);
Lire http://msdn.microsoft.com/en-us/library/ie/bg182625%28v=vs.85%29.aspx
j'utilise le modèle suivant pour cibler tous les navigateurs IE. Vous pouvez le raccourcir si vous n'avez besoin que D'IE 11.
/msie|trident|edge/g.test(navigator.userAgent.toLowerCase());
bonne chance!
Fredrik
ce paramètre définit ie
à la version D'IE, ou 0 si aucun. Il fonctionnera pour 1 à 11, mais peut ne pas détecter les versions futures si Microsoft laisse tomber le moteur Trident.
var ie = 0;
try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; }
catch(e){}
vous pouvez également être intéressé par ma réponse plus détaillée ici .
voici un script que vous pouvez utiliser pour détecter tout navigateur:
<script>
// Opera
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Firefox 1.0+
var isFirefox = typeof InstallTrigger !== 'undefined';
// Safari 3.0+ "[object HTMLElementConstructor]"
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);
// Internet Explorer 6-11
var isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
// Chrome 1+
var isChrome = !!window.chrome && !!window.chrome.webstore;
// Blink engine detection
var isBlink = (isChrome || isOpera) && !!window.CSS;
if (isFirefox==true) {
alert(isFirefox)
$('.container-fluid').css({"overflow-y":"auto","height":"150%"});
}
</script>