Obtendo o agente do usuário com JavaScript

87

Eu gostaria de obter um script que possa pegar o agente do usuário do usuário e colocá-lo em um atributo.

Estou criando um formulário de contato de problemas de site e normalmente preciso saber qual navegador o usuário está usando. Como posso detectar a string do agente do usuário e propô-la como o valor de um elemento de entrada.

Meu html é parecido com:

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

Quero que o agente do usuário seja adicionado a isso como o atributo de valor para que se pareça com:

<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" />
Henryaaron
fonte
4
Você não deve precisar de nenhum JavaScript para fazer isso. Basta ler a string do agente do usuário no cabeçalho HTTP.
Bergi,
8
@Bergi: Na verdade, isso só se você quiser no lado do servidor. Com JavaScript - navigator.userAgentdeve ser suficiente de acordo com a resposta aceita.
Robin Maben
1
@Robin: OP está solicitando o lado do servidor, ele deseja que a string UA seja postada com seu formulário de contato.
Bergi
4
Não se você estiver gerando partes do lado do cliente do aplicativo. O que parece ser o que ele estava fazendo.
oligofren

Respostas:

179

Javascript puro

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">

Adam Merrifield
fonte
8
Adicione uma alternativa não JQuery à resposta. Muitos novos desenvolvedores acham que jQuery é Javascript :-(
Mark Cooper
Não funcionará no jQuery 1.9 ou posterior, a menos que o plugin jQuery Migrate esteja incluído.
Davlio
@Davlio isso não é verdade. O próprio exemplo está usando jQuery 1.11.1 e não usa o plugin Migrate.
Adam Merrifield,
@AdamMerrifield você está certo! Eu disse para $.browsere não pude editar o comentário.
Davlio
51

Q original não disse nada sobre jQuery. tão

document.getElementById('UserAgent').value = navigator.userAgent;
axlotl
fonte