Heim > Web-Frontend > js-Tutorial > Hauptteil

Empfohlene Lektüre von js, um schnell die Javascript-Kenntnisse im IE-Browser (kompatibel mit IE10 und IE11) zu ermitteln

WBOY
Freigeben: 2016-05-16 15:26:12
Original
1710 Leute haben es durchsucht

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;
 }
Nach dem Login kopieren

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;
 }
Nach dem Login kopieren

Aber in IE11 gibt das obige Urteil „falsch“ zurück. Ich habe den folgenden Code selbst in IE11 getestet

Code kopieren Der Code lautet wie folgt:

alarm(window.ActiveXObject);
warning(typeof window.ActiveXObject);

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 erkennen

alert("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);
 }
Nach dem Login kopieren

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;
 }
Nach dem Login kopieren

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;
 }
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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/);
 }
};
Nach dem Login kopieren

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>
Nach dem Login kopieren

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.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!