你能提取部分用户代理并显示它吗?

时间:2016-04-07 09:34:10

标签: javascript php computer-science user-agent

我正在改变一个错误跟踪系统,我有用户输入“平台”,“操作系统”和“操作系统版本”的字段,我希望有一个检测按钮,点击时使用不同的“导航器对象属性”,这个很好,并为'平台'工作,我使用大多数(如果不是所有)对象属性来提取信息(见下文) -

<ul id="clickme">
    <li><a href="#/" id="element1" type="button" onclick="javascript:changeText(1)">Find for me</a></li>
</ul>


<div style="" id="hidden" hidden>
  <div id="demo"></div>
<script>
var txt = "";
txt += "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
txt += "<p>Browser Name: " + navigator.appName + "</p>";
txt += "<p>Browser Version: " + navigator.appVersion + "</p>";
txt += "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
txt += "<p>Browser Language: " + navigator.language + "</p>";
txt += "<p>Browser Online: " + navigator.onLine + "</p>";
txt += "<p>Platform: " + navigator.platform + "</p>";
txt += "<p>User-agent header: " + navigator.userAgent + "</p>";


document.getElementById("demo").innerHTML = txt;
</script>
</div>

您会注意到有一个按钮可以切换包含的显示。

问题是我无法为“OS”和“OS版本”提取简单的答案。

我在用户代理中看到了所需的信息,如果有人知道如何在报告错误时从每个用户的“用户代理”中提取该信息,那将是非常有用的,这可能吗?

我的用户代理的示例是'用户代理标头:Mozilla / 5.0(Macintosh; Intel Mac OS X 10_11_1)AppleWebKit / 537.36(KHTML,与Gecko一样)(//删除浏览器部分)

我需要这个“(Macintosh; Intel Mac OS X 10_11_1)”并希望能够格式化。

我知道我让这个问题有点长,但任何指针或替代方案都会受到赞赏 - 这里的问题都与我的问题无关。

(上面的代码来自W3学校,但它是所有对象的一个​​很好的例子)

谢谢,帕迪。

1 个答案:

答案 0 :(得分:1)

有一个整洁的库可以帮助您这样做:https://github.com/faisalman/ua-parser-js

示例:

<script type="text/javascript" src="ua-parser.min.js"></script>
<script type="text/javascript">
    var parser = new UAParser();
    var os = parser.getOS();
    console.log(os.name, os.version);
</script>