Abrufen des Benutzeragenten mit JavaScript

85

Ich möchte ein Skript erhalten, das den Benutzeragenten des Benutzers abrufen und ihm ein Attribut zuweisen kann.

Ich mache ein Kontaktformular für Website-Probleme und muss normalerweise wissen, welchen Browser der Benutzer verwendet. Wie kann ich die Benutzeragentenzeichenfolge erkennen und als Wert eines Eingabeelements angeben?

Mein HTML sieht ungefähr so ​​aus:

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

Ich möchte, dass der Benutzeragent als Wertattribut hinzugefügt wird, damit es so aussieht:

<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
quelle
3
Sie sollten dazu kein JavaScript benötigen. Lesen Sie einfach die User-Agent-Zeichenfolge aus dem HTTP-Header.
Bergi
7
@Bergi: Eigentlich nur, wenn du es auf der Serverseite willst. Mit JavaScript - navigator.userAgentsollte laut akzeptierter Antwort ausreichen.
Robin Maben
1
@Robin: OP ist für Server - Seite gefragt, will er den UA - String mit seinem Kontaktformular geschrieben bekommen.
Bergi
4
Nicht, wenn Sie Teile Ihrer Anwendungsclientseite generieren. Welches scheint das zu sein, was er tat.
Oligofren

Antworten:

176

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

Adam Merrifield
quelle
7
Bitte fügen Sie der Antwort eine Nicht-JQuery-Alternative hinzu. So viele neue Entwickler denken , dass jQuery ist Javascript :-(
Mark Cooper
Funktioniert nicht in jQuery 1.9 oder höher, es sei denn, das jQuery Migrate-Plugin ist enthalten.
Davlio
@Davlio das ist nicht wahr. Das Beispiel selbst verwendet jQuery 1.11.1 und verwendet nicht das Migrate-Plugin.
Adam Merrifield
@ AdamMerrifield du hast recht! Ich sagte für $.browserund konnte den Kommentar nicht bearbeiten.
Davlio
51

Original Q hat nichts über jQuery gesagt. so

document.getElementById('UserAgent').value = navigator.userAgent;
Axlotl
quelle