Principe de jugement :
JavaScript est le langage principal pour le développement front-end. Nous pouvons déterminer le type et la version du navigateur en écrivant des programmes JavaScript. Il existe généralement deux manières pour JavaScript de déterminer le type de navigateur. L'une est basée sur les attributs uniques de différents navigateurs et l'autre est déterminée en analysant l'attribut userAgent du navigateur. Dans de nombreux cas, une fois le type de navigateur déterminé par valeur, la version du navigateur doit être déterminée pour gérer les problèmes de compatibilité, et la version du navigateur ne peut généralement être connue qu'en analysant l'agent utilisateur du navigateur.
Type de navigateur
⑴ Attributs spécifiques au navigateur
⑵Selon userAgent
Version du navigateur
⑴Selon userAgent
Jugement pour les navigateurs mobiles
1. Comment déterminer s'il s'agit d'un terminal mobile en utilisant la correspondance régulière ?
Vérifiez si navigator.userAgent contient la chaîne AppleWebKit*****Mobile
La version HD du navigateur Android QQ n'a qu'AppleWebKit
2. Jugement de la version linguistique du téléphone mobile
Utilisez navigator.browserLanguage pour obtenir la version linguistique de Windows Phone.
Bien sûr, la petite version haineuse du langage du téléphone mobile présente également des différences de compatibilité. Les navigateurs compatibles avec les noyaux Mozilla et Apple WebKit répertorieront navigator.langue lors de l'accès à sa version linguistique.
CODE:
Copiez le code comme suit :
<script type="text/javascript">
var navigateur={
versions:fonction(){
var u = navigateur.userAgent, app = navigateur.appVersion;
return { //Informations sur la version du navigateur du terminal mobile
trident : u.indexOf('Trident') > -1, //noyau IE
presto : u.indexOf('Presto') > -1, //noyau d'opéra
webKit : u.indexOf('AppleWebKit') > -1, //Apple, noyau Google
gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //Noyau Firefox
mobile : !!u.match(/AppleWebKit.*Mobile.*/), //Qu'il s'agisse d'un terminal mobile
ios : !!u.match(//(i[^;]+;( U;)? CPU.+Mac OS X/), //terminal ios
android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //terminal Android ou navigateur uc
iPhone : u.indexOf('iPhone') > -1 , //Qu'il s'agisse d'un iPhone ou d'un navigateur QQHD
iPad : u.indexOf('iPad') > -1, //Qu'il s'agisse d'un iPad
webApp : u.indexOf('Safari') == -1 //Si le Web doit être un programme sans en-tête ni bas
} ;
}(),
langue:(navigator.browserLanguage || navigator.langue).toLowerCase()
}
document.writeln("version linguistique : "+browser.langue);
document.writeln(" Qu'il s'agisse d'un terminal mobile : "+browser.versions.mobile);
document.writeln("terminal ios : "+browser.versions.ios);
document.writeln(" terminal Android : "+browser.versions.android);
document.writeln(" Qu'il s'agisse d'un iPhone : "+browser.versions.iPhone);
document.writeln(" Si iPad : "+browser.versions.iPad);
document.writeln(navigator.userAgent);
</script>
Un endroit assez particulier
UC Browser n'a pas d'en-tête Android et renvoie uniquement : linux Ici, il est grossièrement jugé comme étant Android basé sur Linux (le prérequis doit être un terminal mobile, et UC s'en contente).
Les résultats de détection de la version Android QQ Browser HD sont : mac, Safari