Was ist die am wenigsten fehleranfällige Möglichkeit, mit JavaScript nur IE11 als Ziel festzulegen?
Hinweis: Dies sollte eigentlich nur zur Analyse oder zur Information des Benutzers über den verwendeten Browser erfolgen. Für alles andere gibt es die Funktionserkennung.
Die User-Agent-Zeichenfolge für IE 11 lautet derzeit wie folgt:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
Windows 10-Beispiel:
Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko
Was bedeutet, dass Sie einfach testen können, für Version 11.xx,
var isIE11 = /Trident.*rv[ :]*11\./.test(navigator.userAgent);
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
es ist wahrscheinlich auch sicher, auf die Tatsache zu wetten, dass jetzt Trident/X
die echte Version ist.
IE11 behält "Trident" in der UA-Zeichenfolge bei, lässt jedoch MSIE fallen. Eine einfache Methode zur Erkennung des Browsers ist IE11 oder höher (IE12, IE13 usw.):
var isAtLeastIE11 = !!(navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE/));
Wenn Sie nur IE11 (und zukünftige Versionen von IE) nicht übereinstimmen möchten, gehen Sie folgendermaßen vor
var isIE11 = !!(navigator.userAgent.match(/Trident/) && navigator.userAgent.match(/rv[ :]11/));
var isIE11 = !!navigator.userAgent.match(/Trident\/7.0; rv 11/);
Quelle: http://www.nczonline.net/blog/2013/07/02/internet-Explorer-11-dont-call-me-ie/
Versuche dies,
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;
})();
Quelle von Browsererkennung in JavaScript?
Aktualisiert für IE = 11
Benutze das
var isIE11 = navigator.userAgent.match(/Trident\/7.0; rv 11.0/);
Lesen Sie dieses http://msdn.Microsoft.com/de-de/library/ie/bg182625%28v=vs.85%29.aspx
Ich verwende das folgende Muster, um auf alle IE - Browser zu zielen. Sie können es verkürzen, wenn Sie nur IE 11 benötigen.
/msie|trident|Edge/g.test(navigator.userAgent.toLowerCase());
Viel Glück!
Fredrik
Dies setzt ie
auf die IE-Version oder 0, wenn keine. Es funktioniert für 1 bis 11, kann aber zukünftige Versionen nicht erkennen, wenn Microsoft die Trident-Engine löscht.
var ie = 0;
try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; }
catch(e){}
Sie könnten auch an meiner verwandten, ausführlicheren Antwort hier interessiert sein.
Hier ist ein Skript, mit dem Sie jeden Browser erkennen können:
<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 = /*@[email protected]*/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>