Nhận Tác nhân người dùng với JavaScript


87

Tôi muốn có một tập lệnh có thể lấy tác nhân người dùng của người dùng và đưa nó vào một thuộc tính.

Tôi đang lập biểu mẫu liên hệ về sự cố trang web và tôi thường cần biết người dùng đang sử dụng trình duyệt nào. Làm cách nào để tôi có thể phát hiện chuỗi tác nhân người dùng và đặt nó làm giá trị của một phần tử đầu vào.

Html của tôi trông giống như sau:

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

Tôi muốn tác nhân người dùng được thêm vào đó dưới dạng thuộc tính giá trị để nó trông giống như sau:

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

4
Bạn không cần bất kỳ JavaScript nào để làm điều này. Chỉ cần đọc chuỗi tác nhân người dùng từ tiêu đề HTTP.
Bergi

8
@Bergi: Thực ra đó chỉ là nếu bạn muốn nó ở phía máy chủ. Với JavaScript - navigator.userAgentphải đủ theo câu trả lời được chấp nhận.
Robin Maben

1
@Robin: OP đang yêu cầu phía máy chủ, anh ấy muốn lấy chuỗi UA được đăng cùng với biểu mẫu liên hệ của mình.
Bergi

4
Không nếu bạn đang tạo các phần của phía ứng dụng khách của mình. Đó dường như là những gì anh ấy đang làm.
oligofren

Câu trả lời:


179

Javascript thuần túy

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


8
Vui lòng thêm một thay thế không phải JQuery vào câu trả lời. Vì vậy, nhiều nhà phát triển mới nghĩ rằng jQuery Javascript :-(
Đánh dấu Cooper

Sẽ không hoạt động trong jQuery 1.9 trở lên trừ khi có plugin jQuery Migrate.
Davlio

@Davlio điều này không đúng. Bản thân ví dụ này đang sử dụng jQuery 1.11.1 và không sử dụng plugin Migrate.
Adam Merrifield

@AdamMerrifield bạn nói đúng! tôi đã nói cho $.browservà không thể chỉnh sửa nhận xét.
Davlio

51

Ban đầu Q không nói gì về jQuery. vì thế

document.getElementById('UserAgent').value = navigator.userAgent;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.