Pobieranie agenta użytkownika za pomocą JavaScript

88

Chciałbym otrzymać skrypt, który może pobrać agenta użytkownika użytkownika i przyporządkować go do atrybutu.

Tworzę formularz kontaktowy dotyczący problemów ze stroną internetową i zwykle muszę wiedzieć, jakiej przeglądarki używa użytkownik. Jak mogę wykryć ciąg agenta użytkownika i zaproponować go jako wartość elementu wejściowego.

Mój HTML wygląda mniej więcej tak:

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

Chcę, aby agent użytkownika został dodany do tego jako atrybut wartości, aby wyglądał tak:

<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
źródło
4
Nie potrzebujesz do tego żadnego JavaScript. Po prostu przeczytaj ciąg znaków agenta użytkownika z nagłówka HTTP.
Bergi,
8
@Bergi: Właściwie to tylko wtedy, gdy chcesz mieć to po stronie serwera. Z JavaScript - navigator.userAgentpowinno wystarczyć zgodnie z zaakceptowaną odpowiedzią.
Robin Maben
1
@Robin OP jest prośbą o stronie serwera, chce uzyskać ciąg UA pisał ze swoją formularza kontaktowego.
Bergi
4
Nie, jeśli generujesz części po stronie klienta aplikacji. Co wydaje się być tym, co robił.
oligofren

Odpowiedzi:

180

Czysty 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
źródło
8
Dodaj do odpowiedzi alternatywę inną niż JQuery. Tak wielu nowych programistów myśli, że jQuery to JavaScript :-(
Mark Cooper
Nie będzie działać w jQuery 1.9 lub nowszym, chyba że zostanie dołączona wtyczka jQuery Migrate.
Davlio
@Davlio to nieprawda. Sam przykład używa jQuery 1.11.1 i nie używa wtyczki Migrate.
Adam Merrifield
@AdamMerrifield masz rację! Powiedziałem $.browseri nie mogę edytować komentarza.
Davlio
51

Oryginalne Q nic nie mówiło o jQuery. więc

document.getElementById('UserAgent').value = navigator.userAgent;
axlotl
źródło