Stellen Sie fest, ob der IE-Browser window.navigator.userAgent verwendet. Verfolgen Sie diese Informationen und stellen Sie fest, dass er in der Entwicklungsumgebung als IE10 erkannt wird, beim Zugriff auf den Server jedoch als IE11 erkannt wird, es jedoch keine MSIE-Markierung gibt im userAgent von IE11 Der Grund ist: Das ist es.
Ändern Sie einfach die Methode zur Beurteilung des IE-Browsers wie folgt.
function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) return true; else return false; }
Hier sind einige Beiträge, die Sie sich ansehen können, sehr praktische Analysen und Erklärungen
In vielen Fällen verwenden wir im Allgemeinen navigator.userAgent und reguläre Ausdrücke, um die IE-Browserversion zu bestimmen. Hier finden Sie eine Einführung in die Verwendung verschiedener Funktionen im IE-Browser, um den IE-Browser zu bestimmen
1 Bestimmen Sie den IE-Browser und den Nicht-IE-Browser
Der Unterschied zwischen IE-Browser und Nicht-IE-Browser besteht darin, dass der IE-Browser ActiveXObject unterstützt, der Nicht-IE-Browser jedoch kein ActiveXObject. Bevor der IE11-Browser erschien, haben wir IE und Nicht-IE oft so beurteilt
function isIe(){ return window.ActiveXObject ? true : false; }
Aber in IE11 gibt das obige Urteil „falsch“ zurück. Ich habe den folgenden Code selbst in IE11 getestet
Das Ergebnis ist
Warum ist das so? Offensichtlich existiert ActiveXObject, aber das Ergebnis von typeof ist tatsächlich undefiniert. Wer das Ergebnis kennt, kann mir sagen warum? Für Shenma?
Die offizielle Website von Microsoft erklärt die Unterschiede im ActiveXObject von IE11. http://msdn.microsoft.com/en-us/library/ie/dn423948(v=vs.85).aspx. Der Grund für typeof wird jedoch nicht erklärt. Es ist in Ordnung, wenn wir den folgenden Code verwenden, um
zu erkennenalert("ActiveXObject" in window)//Gibt unter ie11 false zurück
Das verstehe ich wieder nicht. „ActiveXObject“ gibt „true“ zurück. Warum hat der zur Beurteilung des IE-Browsers verwendete Code in IE11 „false“ zurückgegeben? Auch hier bitte ich die Experten um eine Erklärung. Vielen Dank
Das Folgende ist eine direkte Methode, um festzustellen, ob IE- und Nicht-IE-Browser mit IE11 kompatibel sind.
function isIe(){ return ("ActiveXObject" in window); }
Beachten Sie, dass die Voraussetzung darin besteht, ActiveXObject in unserem Programmcode nicht zu überschreiben. hehe.
2 IE6-Browser bestimmen
Ab IE7 unterstützt IE das XMLHttpRequest-Objekt, IE6 unterstützt es jedoch nicht. Basierend auf dieser Funktion und der vorherigen Funktion isIe() zur Beurteilung von IE wissen wir, wie man IE6 beurteilt. Die Beurteilungsmethode ist wie folgt
function isIe6() { // ie6是不支持window.XMLHttpRequest的 return isIe() && !window.XMLHttpRequest; }
3 IE7-Browser bestimmen
Da der Dokumentmodus ab IE8 unterstützt wird, unterstützt er document.documentMode. IE7 unterstützt es nicht, aber IE7 unterstützt das XMLHttpRequest-Objekt. Die Beurteilungsmethode ist wie folgt
function isIe7() { //只有IE8+才支持document.documentMode return isIe() && window.XMLHttpRequest && !document.documentMode; }
4 IE8-Browser bestimmen
Ab IE9 nähert sich Microsoft langsam dem Standard. Wir nennen IE678 einen nicht standardmäßigen Browser, und IE9 und andere Browser wie Chrome und Firefox werden als Standardbrowser bezeichnet. Einer der Unterschiede zwischen den beiden ist. Bitte testen Sie den folgenden Code. Was wird zurückgegeben
alert(-[1,]);//Was in IE678 gedruckt wird, ist NaN, aber was in Standardbrowsern gedruckt wird, ist -1
Dann können wir anhand der oben genannten Unterschiede beurteilen, dass es sich um einen IE8-Browser handelt. Die Methode ist wie folgt
function isIe8(){ // alert(!-[1,])//->IE678返回NaN 所以!NaN为true 标准浏览器返回-1 所以!-1为false return isIe() &&!-[1,]&&document.documentMode; }
5 Bestimmen Sie die Browser IE9, IE10, IE11
Der Browser unterstützt integrierte JSON-Objekte ab IE8 und unterstützt den strikten Modus von js ab IE10. Informationen zum strikten Modus in JS finden Sie in diesem Artikelhttp://www.jb51.net/article /75037 .htm
Alert(!-[1,]) gibt unter IE9 „false“ zurück. IE9 unterstützt addEventListener, aber der IE11-Browser unterstützt nicht die ursprüngliche, für IE einzigartige Ereignisbindung „attachEvent“. Basierend auf diesen Unterschieden können wir die Browser IE9, IE10 und IE11 unterscheiden.
6 Andere Browser bestimmen
/****来自曾经项目中封装的公共类函数***/ //检测函数 var check = function(r) { return r.test(navigator.userAgent.toLowerCase()); }; var statics = { /** * 是否为webkit内核的浏览器 */ isWebkit : function() { return check(/webkit/); }, /** * 是否为火狐浏览器 */ isFirefox : function() { return check(/firefox/); }, /** * 是否为谷歌浏览器 */ isChrome : function() { return !statics.isOpera() && check(/chrome/); }, /** * 是否为Opera浏览器 */ isOpera : function() { return check(/opr/); }, /** * 检测是否为Safari浏览器 */ isSafari : function() { // google chrome浏览器中也包含了safari return !statics.isChrome() && !statics.isOpera() && check(/safari/); } };
Wie ermittelt js die Version des IE-Browsers, einschließlich IE11
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.jb51.net/" /> <title>脚本之家</title> <script type="text/javascript"> var userAgent = navigator.userAgent, rMsie = /(msie\s|trident.*rv:)([\w.]+)/, rFirefox = /(firefox)\/([\w.]+)/, rOpera = /(opera).+version\/([\w.]+)/, rChrome = /(chrome)\/([\w.]+)/, rSafari = /version\/([\w.]+).*(safari)/; var browser; var version; var ua = userAgent.toLowerCase(); function uaMatch(ua){ var match = rMsie.exec(ua); if(match != null){ return { browser : "IE", version : match[2] || "0" }; } var match = rFirefox.exec(ua); if (match != null) { return { browser : match[1] || "", version : match[2] || "0" }; } var match = rOpera.exec(ua); if (match != null) { return { browser : match[1] || "", version : match[2] || "0" }; } var match = rChrome.exec(ua); if (match != null) { return { browser : match[1] || "", version : match[2] || "0" }; } var match = rSafari.exec(ua); if (match != null) { return { browser : match[2] || "", version : match[1] || "0" }; } if (match != null) { return { browser : "", version : "0" }; } } var browserMatch = uaMatch(userAgent.toLowerCase()); if (browserMatch.browser){ browser = browserMatch.browser; version = browserMatch.version; } document.write(browser+version); </script> </script> </head> <body> </body> </html>
Der obige Code implementiert die Beurteilungsfunktion. Hier ist eine Einführung in das Implementierungsprinzip. Ich hoffe, dass er Freunden in Not helfen kann.
Schauen wir uns zunächst einen Code an:
navigator.userAgent
Screenshot der Informationen unter IE11:
Verwenden Sie dann den entsprechenden regulären Ausdruck zum Abgleichen. Es gibt immer noch große Unterschiede zwischen IE11 und früheren Versionen des Browsers. In der vorherigen Version wurde diese Information nicht mehr in IE11 hinzugefügt, gefolgt von der Versionsnummer des Browsers Das.