Obtener el agente de usuario con JavaScript

87

Me gustaría obtener un script que pueda tomar el agente de usuario del usuario y apoyarlo en un atributo.

Estoy creando un formulario de contacto de problemas con el sitio web y normalmente necesito saber qué navegador está usando el usuario. ¿Cómo puedo detectar la cadena del agente de usuario y utilizarla como valor de un elemento de entrada?

Mi html se parece a:

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

Quiero que el agente de usuario se agregue a eso como el atributo de valor para que se vea así:

<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
fuente
4
No debería necesitar JavaScript para hacer esto. Simplemente lea la cadena de agente de usuario del encabezado HTTP.
Bergi
8
@Bergi: En realidad, eso es solo si lo quieres en el lado del servidor. Con JavaScript, navigator.userAgentdebería ser suficiente según la respuesta aceptada.
Robin Maben
1
@Robin: OP está solicitando el lado del servidor, quiere que la cadena UA se publique con su formulario de contacto.
Bergi
4
No si está generando partes del lado del cliente de su aplicación. Que parece ser lo que estaba haciendo.
oligofren

Respuestas:

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
fuente
8
Agregue una alternativa que no sea de JQuery a la respuesta. Tantos desarrolladores nuevos piensan que jQuery es Javascript :-(
Mark Cooper
No funcionará en jQuery 1.9 o posterior a menos que se incluya el complemento jQuery Migrate.
Davlio
@Davlio esto no es cierto. El ejemplo en sí usa jQuery 1.11.1 y no usa el complemento Migrate.
Adam Merrifield
@AdamMerrifield, ¡tienes razón! Dije a favor $.browsery no pude editar el comentario.
Davlio
51

Original Q no dijo nada sobre jQuery. entonces

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