Noter que oscpu attribut vous donne la version de Windows. Aussi, vous devez savoir que:
'Windows 3.11'=>'Win16','Windows 95'=>'(Windows 95)|(Win95)|(Windows_95)','Windows 98'=>'(Windows 98)|(Win98)','Windows 2000'=>'(Windows NT 5.0)|(Windows 2000)','Windows XP'=>'(Windows NT 5.1)|(Windows XP)','Windows Server 2003'=>'(Windows NT 5.2)','Windows Vista'=>'(Windows NT 6.0)','Windows 7'=>'(Windows NT 6.1)','Windows 8'=>'(Windows NT 6.2)|(WOW64)','Windows 10'=>'(Windows 10.0)|(Windows NT 10.0)','Windows NT 4.0'=>'(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)','Windows ME'=>'Windows ME','Open BSD'=>'OpenBSD','Sun OS'=>'SunOS','Linux'=>'(Linux)|(X11)','Mac OS'=>'(Mac_PowerPC)|(Macintosh)','QNX'=>'QNX','BeOS'=>'BeOS','OS/2'=>'OS/2','Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)'
oscpu travaillé de façon incohérente pour moi quand je l'ai testé à travers les 4 principaux navigateurs sur Windows 7. @Ludwig solution a toujours.
selon wikpedia, en.wikipedia.org/wiki/Windows_NT_6.1 windows NT 6.1 peuvent être soit win 7, win server 2008 ou windows small business server, il est un moyen de déterminer qui est qui?
de la fenêtre.navigator.oscpu est pas défini dans chrome
Je suis aussi observer de la fenêtre.navigator.oscpu pas défini dans Chrome, donc cette solution n'est pas beaucoup d'aide.
de la fenêtre.navigator.la plateforme a obtenu l'OS de google Chrome.
Je veux obtenir seulement quelques détails de cette liste. pourrais-je partager ces détails comme morceau?
Personne ne sait la valeur pour Windows 10 S (la version sécurisée)?
J'ai commencé à écrire un Script pour lire OS et la version de navigateur qui peut être testé sur Violon. N'hésitez pas à utiliser et à étendre.
/**
* JavaScript Client Detection
* (C) viazenetti GmbH (Christian Ludwig)
*/(function(window){{var unknown ='-';//screenvar screenSize ='';if(screen.width){
width =(screen.width)? screen.width :'';
height =(screen.height)? screen.height :'';
screenSize +=''+ width +" x "+ height;}//browservar nVer = navigator.appVersion;var nAgt = navigator.userAgent;var browser = navigator.appName;var version =''+ parseFloat(navigator.appVersion);var majorVersion = parseInt(navigator.appVersion,10);var nameOffset, verOffset, ix;//Operaif((verOffset = nAgt.indexOf('Opera'))!=-1){
browser ='Opera';
version = nAgt.substring(verOffset +6);if((verOffset = nAgt.indexOf('Version'))!=-1){
version = nAgt.substring(verOffset +8);}}//Opera Nextif((verOffset = nAgt.indexOf('OPR'))!=-1){
browser ='Opera';
version = nAgt.substring(verOffset +4);}//Edgeelseif((verOffset = nAgt.indexOf('Edge'))!=-1){
browser ='Microsoft Edge';
version = nAgt.substring(verOffset +5);}//MSIEelseif((verOffset = nAgt.indexOf('MSIE'))!=-1){
browser ='Microsoft Internet Explorer';
version = nAgt.substring(verOffset +5);}//Chromeelseif((verOffset = nAgt.indexOf('Chrome'))!=-1){
browser ='Chrome';
version = nAgt.substring(verOffset +7);}//Safarielseif((verOffset = nAgt.indexOf('Safari'))!=-1){
browser ='Safari';
version = nAgt.substring(verOffset +7);if((verOffset = nAgt.indexOf('Version'))!=-1){
version = nAgt.substring(verOffset +8);}}//Firefoxelseif((verOffset = nAgt.indexOf('Firefox'))!=-1){
browser ='Firefox';
version = nAgt.substring(verOffset +8);}//MSIE 11+elseif(nAgt.indexOf('Trident/')!=-1){
browser ='Microsoft Internet Explorer';
version = nAgt.substring(nAgt.indexOf('rv:')+3);}//Other browserselseif((nameOffset = nAgt.lastIndexOf(' ')+1)<(verOffset = nAgt.lastIndexOf('/'))){
browser = nAgt.substring(nameOffset, verOffset);
version = nAgt.substring(verOffset +1);if(browser.toLowerCase()== browser.toUpperCase()){
browser = navigator.appName;}}//trim the version stringif((ix = version.indexOf(';'))!=-1) version = version.substring(0, ix);if((ix = version.indexOf(' '))!=-1) version = version.substring(0, ix);if((ix = version.indexOf(')'))!=-1) version = version.substring(0, ix);
majorVersion = parseInt(''+ version,10);if(isNaN(majorVersion)){
version =''+ parseFloat(navigator.appVersion);
majorVersion = parseInt(navigator.appVersion,10);}//mobile versionvar mobile =/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);//cookievar cookieEnabled =(navigator.cookieEnabled)?true:false;if(typeof navigator.cookieEnabled =='undefined'&&!cookieEnabled){
document.cookie ='testcookie';
cookieEnabled =(document.cookie.indexOf('testcookie')!=-1)?true:false;}//systemvar os = unknown;var clientStrings =[{s:'Windows 10', r:/(Windows 10.0|Windows NT 10.0)/},{s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/},{s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/},{s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/},{s:'Windows Vista', r:/Windows NT 6.0/},{s:'Windows Server 2003', r:/Windows NT 5.2/},{s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/},{s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/},{s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/},{s:'Windows 98', r:/(Windows 98|Win98)/},{s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/},{s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:'Windows CE', r:/Windows CE/},{s:'Windows 3.11', r:/Win16/},{s:'Android', r:/Android/},{s:'Open BSD', r:/OpenBSD/},{s:'Sun OS', r:/SunOS/},{s:'Chrome OS', r:/CrOS/},{s:'Linux', r:/(Linux|X11(?!.*CrOS))/},{s:'iOS', r:/(iPhone|iPad|iPod)/},{s:'Mac OS X', r:/Mac OS X/},{s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:'QNX', r:/QNX/},{s:'UNIX', r:/UNIX/},{s:'BeOS', r:/BeOS/},{s:'OS/2', r:/OS\/2/},{s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(var id in clientStrings){var cs = clientStrings[id];if(cs.r.test(nAgt)){
os = cs.s;break;}}var osVersion = unknown;if(/Windows/.test(os)){
osVersion =/Windows (.*)/.exec(os)[1];
os ='Windows';}switch(os){case'Mac OS X':
osVersion =/Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1];break;case'Android':
osVersion =/Android ([\.\_\d]+)/.exec(nAgt)[1];break;case'iOS':
osVersion =/OS (\d+)_(\d+)_?(\d+)?/.exec(nVer);
osVersion = osVersion[1]+'.'+ osVersion[2]+'.'+(osVersion[3]|0);break;}//flash (you'll need to include swfobject)/* script src="//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" */var flashVersion ='no check';if(typeof swfobject !='undefined'){var fv = swfobject.getFlashPlayerVersion();if(fv.major >0){
flashVersion = fv.major +'.'+ fv.minor +' r'+ fv.release;}else{
flashVersion = unknown;}}}
window.jscd ={
screen: screenSize,
browser: browser,
browserVersion: version,
browserMajorVersion: majorVersion,
mobile: mobile,
os: os,
osVersion: osVersion,
cookies: cookieEnabled,
flashVersion: flashVersion
};}(this));
alert('OS: '+ jscd.os +' '+ jscd.osVersion +'\n'+'Browser: '+ jscd.browser +' '+ jscd.browserMajorVersion +' ('+ jscd.browserVersion +')\n'+'Mobile: '+ jscd.mobile +'\n'+'Flash: '+ jscd.flashVersion +'\n'+'Cookies: '+ jscd.cookies +'\n'+'Screen Size: '+ jscd.screen +'\n\n'+'Full User Agent: '+ navigator.userAgent
);
C'est parfait! Bien écrit, facile à comprendre et il rassemble toutes les précieuses informations que n'importe qui aurait besoin. Merci d'avoir pris le temps de poster ce!
Génial! Le seul défaut que j'ai trouvé, c'est que IE 11 ne plus s'identifie lui-même comme MS IE. J'ai essayé de poster la solution est un commentaire ici, mais c'était trop long et ne le permettrait pas. Donc, je vais poster est une autre réponse. Mais sinon, c'était parfait... Merci beaucoup!
Solution sympa, mais malheureusement ne fonctionne pas correctement pour Opera Next (en.wikipedia.org/wiki/...). Il est détecté comme Chrome. Afin de vérifier cela, obtenir l'indice de " OPR " dans l'agent utilisateur.
Windows Server 2008 est détecté comme Vista (parce qu'il a "Windows NT 6.0"). Chaîne (pour IE7): "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727)".
navigator.appName = "Netscape" sur google Chrome 64
Puis-je suggérer l'ajout du support pour Chrome OS? {s:'Chrome OS', r:/CrOS/} - il faut passer avant de {s:'Linux', r:/(Linux|X11)/}, comme le Chrome OS chaînes d'agent utilisateur peut aussi commencer avec X11... ou ajouter un peu plus robuste vérifier pour Linux ignorer X11 chaînes qui comprennent CrOS - {s:'Linux', r:/(Linux|X11(?!.*CrOS))/}
Merci. Ajouté Chrome OS et inclus le Linux renforcé de détection (au cas où quelqu'un modifie l'ordre)
varOSName="Unknown";if(window.navigator.userAgent.indexOf("Windows NT 10.0")!=-1)OSName="Windows 10";if(window.navigator.userAgent.indexOf("Windows NT 6.2")!=-1)OSName="Windows 8";if(window.navigator.userAgent.indexOf("Windows NT 6.1")!=-1)OSName="Windows 7";if(window.navigator.userAgent.indexOf("Windows NT 6.0")!=-1)OSName="Windows Vista";if(window.navigator.userAgent.indexOf("Windows NT 5.1")!=-1)OSName="Windows XP";if(window.navigator.userAgent.indexOf("Windows NT 5.0")!=-1)OSName="Windows 2000";if(window.navigator.userAgent.indexOf("Mac")!=-1)OSName="Mac/iOS";if(window.navigator.userAgent.indexOf("X11")!=-1)OSName="UNIX";if(window.navigator.userAgent.indexOf("Linux")!=-1)OSName="Linux";
C'est une excellente réponse 🙂
J'aime le mot d'autre...
Ce sur iOS et Android et ...
quelque chose de quelque chose de prématuré d'optimisation 🙂
très simpliste, couper et sécher réponse.. tout ce dont j'avais besoin. Les autres réponses sont trop personnalisé.
@Ludwig 's solution a été brillant. Un couple de correctifs (qui n'a rien à avoir avec le système d'exploitation, et je ne pouvais pas placer un commentaire sur son post d'origine parce que c'est trop long):
IE 11 ne plus s'identifie lui-même comme MS IE.
Chrome sur IOS parodies comme Safari
Ici, ils sont:
(function(window){{/* test cases
alert(
'browserInfo result: OS: ' + browserInfo.os +' '+ browserInfo.osVersion + '\n'+
'Browser: ' + browserInfo.browser +' '+ browserInfo.browserVersion + '\n' +
'Mobile: ' + browserInfo.mobile + '\n' +
'Cookies: ' + browserInfo.cookies + '\n' +
'Screen Size: ' + browserInfo.screen
);
*/var unknown ='Unknown';//screenvar screenSize ='';if(screen.width){
width =(screen.width)? screen.width :'';
height =(screen.height)? screen.height :'';
screenSize +=''+ width +" x "+ height;}//browservar nVer = navigator.appVersion;var nAgt = navigator.userAgent;var browser = navigator.appName;var version =''+ parseFloat(navigator.appVersion);var majorVersion = parseInt(navigator.appVersion,10);var nameOffset, verOffset, ix;//Operaif((verOffset = nAgt.indexOf('Opera'))!=-1){
browser ='Opera';
version = nAgt.substring(verOffset +6);if((verOffset = nAgt.indexOf('Version'))!=-1){
version = nAgt.substring(verOffset +8);}}//MSIEelseif((verOffset = nAgt.indexOf('MSIE'))!=-1){
browser ='Microsoft Internet Explorer';
version = nAgt.substring(verOffset +5);}//IE 11 no longer identifies itself as MS IE, so trap it//http://stackoverflow.com/questions/17907445/how-to-detect-ie11elseif((browser =='Netscape')&&(nAgt.indexOf('Trident/')!=-1)){
browser ='Microsoft Internet Explorer';
version = nAgt.substring(verOffset +5);if((verOffset = nAgt.indexOf('rv:'))!=-1){
version = nAgt.substring(verOffset +3);}}//Chromeelseif((verOffset = nAgt.indexOf('Chrome'))!=-1){
browser ='Chrome';
version = nAgt.substring(verOffset +7);}//Safarielseif((verOffset = nAgt.indexOf('Safari'))!=-1){
browser ='Safari';
version = nAgt.substring(verOffset +7);if((verOffset = nAgt.indexOf('Version'))!=-1){
version = nAgt.substring(verOffset +8);}//Chrome on iPad identifies itself as Safari. Actual results do not match what Google claims// at: https://developers.google.com/chrome/mobile/docs/user-agent?hl=ja// No mention of chrome in the user agent string. However it does mention CriOS, which presumably// can be keyed on to detect it.if(nAgt.indexOf('CriOS')!=-1){//Chrome on iPad spoofing Safari...correct it.
browser ='Chrome';//Don't believe there is a way to grab the accurate version number, so leaving that for now.}}//Firefoxelseif((verOffset = nAgt.indexOf('Firefox'))!=-1){
browser ='Firefox';
version = nAgt.substring(verOffset +8);}//Other browserselseif((nameOffset = nAgt.lastIndexOf(' ')+1)<(verOffset = nAgt.lastIndexOf('/'))){
browser = nAgt.substring(nameOffset, verOffset);
version = nAgt.substring(verOffset +1);if(browser.toLowerCase()== browser.toUpperCase()){
browser = navigator.appName;}}//trim the version stringif((ix = version.indexOf(';'))!=-1) version = version.substring(0, ix);if((ix = version.indexOf(' '))!=-1) version = version.substring(0, ix);if((ix = version.indexOf(')'))!=-1) version = version.substring(0, ix);
majorVersion = parseInt(''+ version,10);if(isNaN(majorVersion)){
version =''+ parseFloat(navigator.appVersion);
majorVersion = parseInt(navigator.appVersion,10);}//mobile versionvar mobile =/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);//cookievar cookieEnabled =(navigator.cookieEnabled)?true:false;if(typeof navigator.cookieEnabled =='undefined'&&!cookieEnabled){
document.cookie ='testcookie';
cookieEnabled =(document.cookie.indexOf('testcookie')!=-1)?true:false;}//systemvar os = unknown;var clientStrings =[{s:'Windows 3.11', r:/Win16/},{s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/},{s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/},{s:'Windows 98', r:/(Windows 98|Win98)/},{s:'Windows CE', r:/Windows CE/},{s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/},{s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/},{s:'Windows Server 2003', r:/Windows NT 5.2/},{s:'Windows Vista', r:/Windows NT 6.0/},{s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/},{s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/},{s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/},{s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:'Windows ME', r:/Windows ME/},{s:'Android', r:/Android/},{s:'Open BSD', r:/OpenBSD/},{s:'Sun OS', r:/SunOS/},{s:'Linux', r:/(Linux|X11)/},{s:'iOS', r:/(iPhone|iPad|iPod)/},{s:'Mac OS X', r:/Mac OS X/},{s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:'QNX', r:/QNX/},{s:'UNIX', r:/UNIX/},{s:'BeOS', r:/BeOS/},{s:'OS/2', r:/OS\/2/},{s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(var id in clientStrings){var cs = clientStrings[id];if(cs.r.test(nAgt)){
os = cs.s;break;}}var osVersion = unknown;if(/Windows/.test(os)){
osVersion =/Windows (.*)/.exec(os)[1];
os ='Windows';}switch(os){case'Mac OS X':
osVersion =/Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1];break;case'Android':
osVersion =/Android ([\.\_\d]+)/.exec(nAgt)[1];break;case'iOS':
osVersion =/OS (\d+)_(\d+)_?(\d+)?/.exec(nVer);
osVersion = osVersion[1]+'.'+ osVersion[2]+'.'+(osVersion[3]|0);break;}}
window.browserInfo ={
screen: screenSize,
browser: browser,
browserVersion: version,
mobile: mobile,
os: os,
osVersion: osVersion,
cookies: cookieEnabled
};}(this));
J'ai commencé un dépôt github sur cette base. github.com/thorst/Browser. Visant à être minime, mais suffisante.
Alors maintenant, tout ce que vous avez à faire est de continuer à le mettre à jour pour chaque navigateur sur chaque appareil, comme ils sont libérés. Je ne vois pas "Samsung SmartTV" n'importe où.
Ippolito, c'est très utile, merci beaucoup. Aussi je voudrais savoir comment peut-on trouver le bord de navigateur et sa version.
platform.js semble comme un bon fichier de la bibliothèque pour ce faire.
Exemple d'utilisation:
//on IE10 x86 platform preview running in IE7 compatibility mode on Windows 7 64 bit edition
platform.name;//'IE'
platform.version;//'10.0'
platform.layout;//'Trident'
platform.os;//'Windows Server 2008 R2 /7 x64'
platform.description;//'IE 10.0 x86 (platform preview; running in IE 7 mode) on Windows Server 2008 R2 /7 x64'//or on an iPad
platform.name;//'Safari'
platform.version;//'5.1'
platform.product;//'iPad'
platform.manufacturer;//'Apple'
platform.layout;//'WebKit'
platform.os;//'iOS 5.0'
platform.description;//'Safari 5.1 on Apple iPad (iOS 5.0)'//or parsing a given UA stringvar info = platform.parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7.2; en; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 11.52');
info.name;//'Opera'
info.version;//'11.52'
info.layout;//'Presto'
info.os;//'Mac OS X 10.7.2'
info.description;//'Opera 11.52 (identifying as Firefox 4.0) on Mac OS X 10.7.2'
L'utiliser pour extraire tous les détails dont vous avez besoin (et peut). Notez qu'il n'ya aucune garantie que le client utilise cette plate-forme, car cela peut facilement être modifié de plusieurs façons.
"Cette fonctionnalité a été supprimée à partir des standards du Web. Bien que certains navigateurs peuvent encore soutenir, il est dans le processus de chute. Ne pas utiliser dans un vieux ou de nouveaux projets. Des Pages ou des applications Web à l'aide, elle peut se briser à tout moment."
pouvez-vous fournir une référence pour cette déclaration? Qui n'est pas mentionnée dans le MDN lien dans cette réponse.
C'est tellement bizarre. Que messaged était là, mais je vois que ça ne l'est plus. Je pense qu'à un certain point, en 2016, il a été considéré comme? Je vois aussi cette question (stackoverflow.com/questions/38506517/...), donc quelqu'un d'autre l'a remarqué aussi. Merci pour la mise à jour.
Vous pouvez utiliser cette javascript de fonction pour vérifier les utilisateurs d'OS tout simplement
function getOS(){var userAgent = window.navigator.userAgent,
platform = window.navigator.platform,
macosPlatforms =['Macintosh','MacIntel','MacPPC','Mac68K'],
windowsPlatforms =['Win32','Win64','Windows','WinCE'],
iosPlatforms =['iPhone','iPad','iPod'],
os =null;if(macosPlatforms.indexOf(platform)!==-1){
os ='Mac OS';}elseif(iosPlatforms.indexOf(platform)!==-1){
os ='iOS';}elseif(windowsPlatforms.indexOf(platform)!==-1){
os ='Windows';}elseif(/Android/.test(userAgent)){
os ='Android';}elseif(!os &&/Linux/.test(platform)){
os ='Linux';}return os;}
alert(getOS());
Vous pouvez trouver le nom du système d'exploitation et version dans le navigator objet, comme d'autres ont répondu. La norme, de la croix-navigateur endroit pour trouver cette information dans le navigator.userAgent de la propriété. Cependant, les chaînes d'agent utilisateur varient largement par l'OS et le navigateur.
Donc, j'ai créé un script pour encapsuler cette logique et de faire rapport sur les plus communs des Systèmes d'exploitation et navigateurs de façon familière, comme http://www.whatsmybrowser.org.
J'ai créé une bibliothèque pour l'analyse des chaînes d'Agent Utilisateur appelé Vaudou. Mais sachez que cela devrait pas être utilisé à la place de la détection de fonctionnalité.
Ce que le Vaudou, c'est qu'il analyse le userAgent de la chaîne, qui se trouve dans le Navigateur d'objet (fenêtre.navigator). Ce n'est pas tous les navigateurs qui passe fiable userAgent chaîne, donc même si c'est la façon normale de faire, le client ne peut pas toujours être digne de confiance.
J'ai adoré le Vaudou, mais je pense que devrait être un moyen facile de distinguer entre mobile, tablette, etc... n'hésitez pas à poster à gittip, donc je peux vous donner un pourboire pour le beau travail.
Je ne peux pas commenter sur @Ian Ippolito réponse (parce que j'aurais si j'avais le rep), mais selon le document de son commentaire lié, je suis assez certain que vous pouvez trouver la version de Chrome pour IOS. https://developer.chrome.com/multidevice/user-agent?hl=ja listes de l'UA ainsi: Mozilla/5.0 (iPhone; PROCESSEUR de l'iPhone OS 10_3 comme Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1
Donc cela devrait fonctionner:
if((verOffset = nAgt.indexOf('CriOS'))!=-1){//Chrome on iPad spoofing Safari...correct it.
browser ='Chrome';
version = nAgt.substring(verOffset +6);//should get the criOS ver.}
N'ai pas pu tester (sinon je l'aurais amélioration de sa réponse), pour vous assurer que depuis mon iPad est à la maison et je suis au travail, mais je pensais que je l'avais mis là-bas.
vous pouvez également installer la bibliothèque via npm, et de l'importer comme ceci:
import{UAParser} from 'ua-parser-js';let parser =newUAParser();
parser.getOS();
la bibliothèque est un JS basé chaîne de l'agent utilisateur de l'analyseur (fenêtre.navigator.userAgent est l'agent utilisateur du navigateur) , de sorte que vous pouvez obtenir avec elle d'autres détails ainsi comme Navigateur,appareil,moteurs etc..et il peut travailler avec node js ainsi.
Si vous avez la liste de tous
window.navigator
's en utilisant les propriétésVous verrez quelque chose comme ceci
Noter que
oscpu
attribut vous donne la version de Windows. Aussi, vous devez savoir que:J'ai commencé à écrire un Script pour lire OS et la version de navigateur qui peut être testé sur Violon. N'hésitez pas à utiliser et à étendre.
{s:'Chrome OS', r:/CrOS/}
- il faut passer avant de{s:'Linux', r:/(Linux|X11)/}
, comme le Chrome OS chaînes d'agent utilisateur peut aussi commencer avecX11
... ou ajouter un peu plus robuste vérifier pour Linux ignorerX11
chaînes qui comprennentCrOS
-{s:'Linux', r:/(Linux|X11(?!.*CrOS))/}
@Ludwig 's solution a été brillant. Un couple de correctifs (qui n'a rien à avoir avec le système d'exploitation, et je ne pouvais pas placer un commentaire sur son post d'origine parce que c'est trop long):
Ici, ils sont:
platform.js semble comme un bon fichier de la bibliothèque pour ce faire.
Exemple d'utilisation:
JavaScript ont accès à la
window.navigator.platform
- une chaîne de caractères représentant la plate-forme de l'explorateur: https://developer.mozilla.org/en/DOM/window.navigator.platformL'utiliser pour extraire tous les détails dont vous avez besoin (et peut). Notez qu'il n'ya aucune garantie que le client utilise cette plate-forme, car cela peut facilement être modifié de plusieurs façons.
Vous pouvez utiliser cette
javascript
de fonction pour vérifier les utilisateurs d'OS tout simplementVous pouvez trouver le nom du système d'exploitation et version dans le
navigator
objet, comme d'autres ont répondu. La norme, de la croix-navigateur endroit pour trouver cette information dans lenavigator.userAgent
de la propriété. Cependant, les chaînes d'agent utilisateur varient largement par l'OS et le navigateur.Donc, j'ai créé un script pour encapsuler cette logique et de faire rapport sur les plus communs des Systèmes d'exploitation et navigateurs de façon familière, comme http://www.whatsmybrowser.org.
Je open-source le script et téléchargé sur github, https://github.com/keithws/browser-report. Tirez les demandes sont les bienvenus!
J'ai créé une bibliothèque pour l'analyse des chaînes d'Agent Utilisateur appelé Vaudou. Mais sachez que cela devrait pas être utilisé à la place de la détection de fonctionnalité.
Ce que le Vaudou, c'est qu'il analyse le userAgent de la chaîne, qui se trouve dans le Navigateur d'objet (fenêtre.navigator). Ce n'est pas tous les navigateurs qui passe fiable userAgent chaîne, donc même si c'est la façon normale de faire, le client ne peut pas toujours être digne de confiance.
Je fourche @Ludwig code et supprimer la nécessité de
swfobject
.Je viens d'utiliser swfobject code pour détecter la version de flash.
Utilisation detectOS.js:
Je ne peux pas commenter sur @Ian Ippolito réponse (parce que j'aurais si j'avais le rep), mais selon le document de son commentaire lié, je suis assez certain que vous pouvez trouver la version de Chrome pour IOS. https://developer.chrome.com/multidevice/user-agent?hl=ja listes de l'UA ainsi: Mozilla/5.0 (iPhone; PROCESSEUR de l'iPhone OS 10_3 comme Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1
Donc cela devrait fonctionner:
N'ai pas pu tester (sinon je l'aurais amélioration de sa réponse), pour vous assurer que depuis mon iPad est à la maison et je suis au travail, mais je pensais que je l'avais mis là-bas.
Hey pour une solution rapide, vous pouvez envisager de la bibliothèque suivante : UAPARSER - https://www.npmjs.com/package/ua-parser-js
exemple :
vous pouvez également installer la bibliothèque via npm, et de l'importer comme ceci:
la bibliothèque est un JS basé chaîne de l'agent utilisateur de l'analyseur (fenêtre.navigator.userAgent est l'agent utilisateur du navigateur) , de sorte que vous pouvez obtenir avec elle d'autres détails ainsi comme Navigateur,appareil,moteurs etc..et il peut travailler avec node js ainsi.
si vous avez besoin de taper pour la bibliothèque : https://www.npmjs.com/package/@types/ua-parser-js