Получение пользовательского агента с помощью JavaScript

87

Я хотел бы получить скрипт, который может захватить пользовательский агент и привязать его к атрибуту.

Я создаю контактную форму по проблемам веб-сайта, и мне обычно нужно знать, какой браузер использует пользователь. Как я могу обнаружить строку пользовательского агента и поддержать ее как значение элемента ввода.

Мой html выглядит примерно так:

<input type="hidden" id="UserAgent" name="User Agent" />

Я хочу, чтобы пользовательский агент был добавлен к нему в качестве атрибута значения, чтобы он выглядел так:

<input type="hidden" id="UserAgent" name="User Agent" value="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10" />
Генриарон
источник
4
Для этого вам не понадобится JavaScript. Просто прочтите строку агента-пользователя из заголовка HTTP.
Берги
8
@Bergi: На самом деле, только если вы хотите, чтобы это было на стороне сервера. С JavaScript - navigator.userAgentдолжно хватить в соответствии с принятым ответом.
Робин Мабен,
1
@Robin: OP будет просить стороне сервера, он хочет получить строку UA отправил его контактную форму.
Bergi
4
Нет, если вы создаете части клиентской части своего приложения. Кажется, именно это он и делал.
oligofren

Ответы:

179

Чистый Javascript

document.getElementById('UserAgent').value = navigator.userAgent;
<input type="text" id="UserAgent">

jQuery

$('#UserAgent').val(navigator.userAgent);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<input type="text" id="UserAgent">

Адам Меррифилд
источник
8
Пожалуйста, добавьте к ответу альтернативу, отличную от JQuery. Так много новых разработчиков думают, что jQuery - это Javascript :-(
Марк Купер,
Не будет работать в jQuery 1.9 или новее, если не включен плагин jQuery Migrate.
Давлио
@Davlio это неправда. Сам пример использует jQuery 1.11.1 и не использует плагин Migrate.
Адам Меррифилд
@AdamMerrifield, ты прав! Я сказал за $.browserи не могу редактировать комментарий.
Давлио
51

Оригинальный Q ничего не сказал о jQuery. так

document.getElementById('UserAgent').value = navigator.userAgent;
акслотль
источник