JavaScript для определения ОС в Chrome версии 37.0.2062.94
Я разрабатываю одностраничные приложения. Ярлык должен отличаться в разных ОС, особенно в Mac OS X. Другие обычно сочетают нажатие клавиш с Ctrl, но Mac сочетается с Cmd.
До сих пор я пытался определить, является ли ОС Mac или нет, с помощью этого кода:
var bMac = navigator.appVersion.indexOf('Mac') > -1;
Этот код работал хорошо. Однако после обновления Chrome до последней версии (37.0.2062.94) он больше не работает.
Есть ли способ обнаружить хост ОС браузера в JavaScript?
Я проверил Google Docs в Chrome, и его ярлык хорошо работал с Cmd в Mac и Ctrl в Window. Должен быть способ обнаружить ОС в JavaScript в Chrome.
РЕДАКТИРОВАТЬ Я погуглил и нашел несколько страниц об обнаружении ОС в javascript:
2 ответа
Кажется, что при обновлении версии произошел неожиданный побочный эффект. Это все еще трудно понять.
Когда я проверил navigator.appVersion
Странно, что там было Linux; Android...
,
> navigator.appVersion
"5.0 (Linux; Android 4.2.2; GT-I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36"
Я проверил Emulation
вкладка в инструментах разработчика, и это выглядело так:
Было странно, что эта вкладка обычно была пустой. Во всяком случае после того, как я нажал Reset
Кнопка на вкладке, он вернулся.
> navigator.appVersion
"5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36"
С navigation.userAgent
Вы должны хорошо идти, но вы должны разобрать ответ. Это очень хороший небольшой javascript для определения ОС, браузера, устройства, версии устройства и т. Д. Добавляя классы к html
тег. Он предназначен, чтобы помочь вам со стилями CSS, но у него есть и другие применения.
Например, после запуска этого небольшого JavaScript вы получите:
<html class="webkit chrome mac">