使用JavaScript获取用户代理


87

我想要一个可以捕获用户的用户代理并将其支持给属性的脚本。

我正在制作网站问题联系表格,通常需要知道用户使用的是哪种浏览器。如何检测用户代理字符串并将其支持为输入元素的值。

我的html看起来像:

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

我希望将用户代理添加为value属性,使其看起来像:

<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
您不需要任何JavaScript即可执行此操作。只需从HTTP标头读取user-agent-string。
Bergi 2012年

8
@Bergi:实际上,只有在服务器端才需要它。使用JavaScript-navigator.userAgent根据已接受的答案就足够了。
罗宾·马本

1
@Robin:OP正在请求服务器端,他想通过联系表发布UA字符串。
Bergi 2013年

4
如果要生成应用程序客户端的一部分,则不会。这似乎是他在做什么。
oligofren 2014年

Answers:


179

纯Java脚本

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
请为答案添加非JQuery替代方法。如此多的新开发人员认为jQueryJavascript的:-(
Mark Cooper

除非包含jQuery Migrate插件,否则将无法在jQuery 1.9或更高版本中使用。
Davlio

@Davlio这不是事实。该示例本身使用的是jQuery 1.11.1,并且未使用Migrate插件。
亚当·梅里菲尔德

@AdamMerrifield你是对的!我说了$.browser,不能编辑评论。
Davlio

51

原始Q没说关于jQuery的任何东西。所以

document.getElementById('UserAgent').value = navigator.userAgent;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.