Обнаружить версию Windows с помощью JavaScript
В частности, я пытаюсь обнаружить пользователей Windows XP, поскольку они не совместимы с моим программным обеспечением.
Есть ли способ обнаружения с точностью не менее 70% или более?
Ответы
Ответ 1
Попробуйте navigator.appVersion
http://msdn.microsoft.com/en-us/library/ms533080(v=VS.85).aspx
https://developer.mozilla.org/en/DOM/window.navigator.appVersion
У меня есть Windows 7 здесь, а navigator.appVersion
возвращает строку, содержащую "NT 6.1" в этих браузерах: Chrome, Opera, Safari, IE9 beta.
Только Firefox не возвращает эту информацию в этой строке:(
btw, WinXP - "NT 5.1", Vista - "NT 6.0"...
Обновление
navigator.userAgent
возвращает строку "NT version" во всех 5 браузерах. Это означает, что userAgent
- это свойство, которое может сообщить версию Windows.
Ответ 2
Похоже, вы можете использовать объект хоста navigator
:
var os = navigator.platform
См. здесь для получения дополнительной информации:
http://www.jguru.com/faq/view.jsp?EID=1100686
также:
http://www.quirksmode.org/js/detect.html
Ответ 3
Строка пользовательского агента позволяет узнать номер версии, но не имя версии. Например, как уже упоминалось здесь, Windows NT 5.1 означает XP, Windows NT 6.0 означает Vista и т.д.
Я написал этот компонент detect-os-version, который вернет форматированное имя версии. Это также поможет вам обнаружить версии других платформ.
Не стесняйтесь импортировать его и использовать, как показано в следующих примерах:
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'}