2010-10-23 9 views

Répondre

23

Essayez navigator.appVersion

http://msdn.microsoft.com/en-us/library/ms533080(v=VS.85).aspx
https://developer.mozilla.org/en/DOM/window.navigator.appVersion

Je Windows 7 ici et la navigator.appVersion retourne une chaîne contenant "NT 6.1" dans ces navigateurs: Chrome, Opera, Safari, bêta IE9.

Seulement Firefox ne renvoie pas cette information dans cette chaîne :(

BTW, est WinXP "NT 5.1", Vista est "NT 6.0" ...

Mise à jour

navigator.userAgent renvoie la chaîne "version NT" dans les 5 navigateurs, ce qui signifie que userAgent est la propriété pouvant indiquer la version de Windows

+0

navigator.userAgent doit contenir cette chaîne (NT 5.1) également dans Firefox. –

+0

@ Dr.Molle Pourriez-vous le tester? Mettez 'javascript: alert (navigator.appVersion)' dans la barre d'adresse de Firefox et appuyez sur ENTER. Il se peut que mon installation de Firefox soit corrompue d'une façon ou d'une autre (parce que je cours 3.6 et 4beta en même temps) –

+0

Mon Firefox retourne pour appVersion '5.0 (Windows; de)'. J'utilise 3.6.11 sur WinXP. 'navigator.userAgent' renvoie une chaîne contenant les informations nécessaires ** NT 5.1 ** –

1

Il semble que vous pouvez utiliser l'objet hôte navigator:

var os = navigator.platform 

Voir ici pour plus d'informations: http://www.jguru.com/faq/view.jsp?EID=1100686

aussi: http://www.quirksmode.org/js/detect.html

+1

'navigator' n'est pas une classe, c'est un objet hôte qui existe dans les navigateurs ... –

+0

Ouais, désolé. Je vais corriger mon message. –

+0

J'ai essayé de trouver plus d'informations et j'ai trouvé ce http://www.w3schools.com/jsref/prop_nav_platform.asp qui n'est pas très bien documenté. Y a-t-il une meilleure documentation pour navigator.platform? EDIT: On dirait, selon https://developer.mozilla.org/en/DOM/window.navigator.platform, vous ne pouvez pas détecter les versions de système d'exploitation spécifiques dans Windows – reefine

1

La chaîne de l'agent utilisateur vous permet de connaître le numéro de version, mais pas le nom de la version. Par exemple, comme déjà mentionné ici, Windows NT 5.1 signifie XP, Windows NT 6.0 signifie Vista, etc. J'ai écrit ce composant detect-os-version qui retournera un nom de version formaté. Cela vous aidera également à détecter les versions des autres plates-formes.

Ne hésitez pas à importer et utiliser comme indiqué dans ces exemples:

detectOsVersion.get() => {os: 'Windows', version: 'XP'} 
detectOsVersion.get() => {os: 'BlackBerry', version: '7.1.0.346'}  
detectOsVersion.get() => {os: 'Android', version: '4.2.2'} 
detectOsVersion.get() => {os: 'iOS', version: '5.1.1'} 
detectOsVersion.get() => {os: 'Mac', version: '10.7.1'} 
Questions connexes