Maison > interface Web > js tutoriel > le corps du texte

Lecture recommandée de js pour déterminer rapidement les compétences du navigateur IE (compatible avec IE10 et IE11)_javascript

WBOY
Libérer: 2016-05-16 15:26:12
original
1710 Les gens l'ont consulté

Déterminez si le navigateur IE utilise window.navigator.userAgent. Suivez ces informations et constatez que dans l'environnement de développement, elles sont reconnues comme IE10, mais lors de l'accès au serveur, elles sont reconnues comme IE11, mais il n'y a pas de marque MSIE. dans le userAgent d'IE11 La raison est que ça y est.


Changez simplement la méthode de jugement du navigateur IE comme suit.

function isIE() { //ie?
 if (!!window.ActiveXObject || "ActiveXObject" in window)
 return true;
 else
 return false;
 }
Copier après la connexion

Voici quelques partages, vous pouvez y jeter un oeil, analyse et explication très pratiques

Dans de nombreux cas, nous utilisons généralement navigator.userAgent et des expressions régulières pour déterminer la version du navigateur IE. Voici une introduction à l'utilisation de différentes fonctionnalités du navigateur IE pour déterminer le navigateur IE

.

1 Déterminer le navigateur IE et le navigateur non-IE

La différence entre le navigateur IE et le navigateur non-IE est que le navigateur IE prend en charge ActiveXObject, mais le navigateur non-IE ne prend pas en charge ActiveXObject. Avant l'apparition du navigateur IE11, c'était ainsi que nous jugions souvent IE et non-IE

function isIe(){
 return window.ActiveXObject ? true : false;
 }
Copier après la connexion

Mais dans IE11, le jugement ci-dessus renvoie faux. J'ai moi-même testé le code suivant dans IE11

.

Copier le code Le code est le suivant :

alerte(window.ActiveXObject);
alert(typeof window.ActiveXObject);

Le résultat est

Pourquoi ça ? Évidemment, ActiveXObject existe, mais le résultat de typeof est effectivement indéfini. Quiconque connaît le résultat peut me dire pourquoi ? Pour Shenma ?

Le site officiel de Microsoft explique les différences entre ActiveXObject d'IE11. http://msdn.microsoft.com/en-us/library/ie/dn423948(v=vs.85).aspx. Mais la raison de ce type n’est pas expliquée. Ce n'est pas grave si nous utilisons le code suivant pour détecter

alert("ActiveXObject" dans la fenêtre)//Renvoie false sous ie11

C'est encore ce que je ne comprends pas. "ActiveXObject" dans la fenêtre renvoie vrai. Pourquoi le code utilisé pour juger le navigateur IE a-t-il renvoyé faux dans IE11 ? Encore une fois, je prie les experts de me donner une explication. Merci
Ce qui suit est une méthode directe pour déterminer si les navigateurs IE et non-IE sont compatibles avec IE11.

function isIe(){
 return ("ActiveXObject" in window);
 }
Copier après la connexion

Notez que la condition préalable est de ne pas écraser ActiveXObject dans notre code de programme. Aucun programme ne devrait le faire. héhé.

2 Déterminer le navigateur IE6

À partir d'IE7, IE prend en charge l'objet XMLHttpRequest, mais IE6 ne le prend pas en charge. Sur la base de cette fonctionnalité et de la fonction précédente isIe() pour juger IE, nous savons comment juger IE6. La méthode de jugement est la suivante

function isIe6() {
 // ie6是不支持window.XMLHttpRequest的
 return isIe() && !window.XMLHttpRequest;
 }
Copier après la connexion

3 Déterminer le navigateur IE7

Étant donné que le mode document est pris en charge à partir d'IE8, il prend en charge document.documentMode. IE7 ne le prend pas en charge, mais IE7 prend en charge l'objet XMLHttpRequest. La méthode de jugement est la suivante

function isIe7() {
 //只有IE8+才支持document.documentMode
 return isIe() && window.XMLHttpRequest && !document.documentMode;
 }
Copier après la connexion

4 Déterminer le navigateur IE8

À partir d'IE9, Microsoft se rapproche lentement du standard. Nous appelons IE678 un navigateur non standard, et IE9 et d'autres navigateurs tels que Chrome et Firefox sont appelés navigateurs standard. L'une des différences entre les deux est. Veuillez tester le code suivant. Ce qui est retourné

alert(-[1,]);//Ce qui est imprimé dans IE678 est NaN, mais ce qui est imprimé dans les navigateurs standards est -1

Ensuite, nous pouvons juger qu'il s'agit d'un navigateur IE8 sur la base des différences ci-dessus. La méthode est la suivante

function isIe8(){
 // alert(!-[1,])//->IE678返回NaN 所以!NaN为true 标准浏览器返回-1 所以!-1为false
 return isIe() &&!-[1,]&&document.documentMode;
}
Copier après la connexion

5 Déterminer les navigateurs IE9, IE10, IE11

Le navigateur prend en charge les objets intégrés JSON d'IE8 et prend en charge le mode strict de js à partir d'IE10. Veuillez vous référer à cet article pour le mode strict dans JShttp://www.jb51.net/article. /75037 .htm

Alert(!-[1,]) sous IE9 renvoie false. IE9 prend en charge addEventListener, mais le navigateur IE11 ne prend pas en charge la liaison d'événement d'origine attachEvent unique à IE. Sur la base de ces différences, nous pouvons distinguer les navigateurs IE9, IE10 et IE11.

6 Déterminer les autres navigateurs

/****来自曾经项目中封装的公共类函数***/
//检测函数
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/);
 }
};
Copier après la connexion

Comment js détermine-t-il la version du navigateur IE, y compris 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>
Copier après la connexion

Le code ci-dessus implémente la fonction de jugement. Voici une introduction à son principe de mise en œuvre. J'espère qu'il pourra aider les amis dans le besoin.

Regardons d'abord un morceau de code :

navigator.userAgent

Capture d'écran des informations sous IE11 :

Utilisez ensuite l'expression régulière correspondante pour faire correspondre. Il existe encore de grandes différences entre IE11 et les versions précédentes du navigateur. Dans la version précédente, ces informations contenaient msie, mais elles ne figurent plus dans IE11 et Trident est nouvellement ajouté, suivi du numéro de version du navigateur. ce.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!