Obtenir l'agent utilisateur avec JavaScript

87

Je voudrais obtenir un script qui peut saisir l'agent utilisateur de l'utilisateur et le propulser sur un attribut.

Je crée un formulaire de contact pour les problèmes de site Web et j'ai généralement besoin de savoir quel navigateur utilise l'utilisateur. Comment puis-je détecter la chaîne de l'agent utilisateur et la propulser comme valeur d'un élément d'entrée.

Mon html ressemble à quelque chose comme:

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

Je veux que l'agent utilisateur soit ajouté à cela en tant qu'attribut de valeur afin qu'il ressemble à:

<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
la source
4
Vous ne devriez pas avoir besoin de JavaScript pour ce faire. Lisez simplement la chaîne user-agent-string de l'en-tête HTTP.
Bergi
8
@Bergi: En fait, ce n'est que si vous le voulez côté serveur. Avec JavaScript - navigator.userAgentdevrait suffire selon la réponse acceptée.
Robin Maben
1
@Robin: OP est demandé pour le côté serveur, il veut obtenir la chaîne UA affichée avec son formulaire de contact.
Bergi
4
Pas si vous générez des parties de votre application côté client. Ce qui semble être ce qu'il faisait.
oligofren

Réponses:

179

Javascript pur

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
la source
8
Veuillez ajouter une alternative non-JQuery à la réponse. Tant de nouveaux développeurs pensent que jQuery est Javascript :-(
Mark Cooper
Ne fonctionnera pas dans jQuery 1.9 ou version ultérieure à moins que le plugin jQuery Migrate ne soit inclus.
Davlio
@Davlio ce n'est pas vrai. L'exemple lui-même utilise jQuery 1.11.1 et n'utilise pas le plugin Migrate.
Adam Merrifield
@AdamMerrifield vous avez raison! J'ai dit pour $.browseret je ne pourrais pas modifier le commentaire.
Davlio
51

L'original Q n'a rien dit à propos de jQuery. donc

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