Как найти версию операционной системы с помощью JavaScript? - PullRequest
180 голосов
/ 01 марта 2012

Как найти имя ОС и версию ОС с помощью JavaScript?

Ответы [ 13 ]

1 голос
/ 01 марта 2012

Я создал библиотеку для разбора строк User Agent с именем Voodoo . Но имейте в виду, что это не должно использоваться вместо обнаружения функции.

Что делает Voodoo, так это то, что он анализирует строку userAgent, которая находится в объекте Navigator (window.navigator). Не все браузеры передают надежную строку userAgent, поэтому, несмотря на то, что это обычный способ, userAgent не всегда можно доверять.

0 голосов
/ 02 декабря 2018

Эй, для быстрого решения вы можете рассмотреть следующую библиотеку: UAPARSER - https://www.npmjs.com/package/ua-parser-js

пример:

<script type="text/javascript" src="ua-parser.min.js"></script>
<script type="text/javascript">

var parser = new UAParser();
console.log(parser.getOS()) // will log  {name: "", version:""}

Вы также можете установить библиотеку через npm и импортировать ее следующим образом:

import { UAParser } from 'ua-parser-js';
let parser = new UAParser();
parser.getOS();

библиотека представляет собой анализатор строк пользовательского агента на основе JS (window.navigator.userAgent - агент пользователя в браузере), так что вы можете получить вместе с ней другие детали, такие как браузер, устройство, механизмы и т. Д. с узлом JS, а также.

если вам нужно набрать для библиотеки: https://www.npmjs.com/package/@types/ua-parser-js

0 голосов
/ 10 марта 2017

Я не могу комментировать ответ @Ian Ippolito (потому что я бы получил, если бы у меня был представитель), но в соответствии с документом, на который он ссылался, я вполне уверен, что вы можете найти версию Chrome для IOS. https://developer.chrome.com/multidevice/user-agent?hl=ja перечисляет UA как: Mozilla / 5.0 (iPhone; процессор iPhone OS 10_3, как Mac OS X) AppleWebKit / 602.1.50 (KHTML, как Gecko) CriOS / 56.0.2924.75 Mobile / 14E5239e Safari / 602.1

Так что это должно работать:

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.
            }

Я бы не смог протестировать (иначе я бы улучшил его ответ), чтобы убедиться, что мой iPad дома, а я на работе, но я решил поставить его там.

...