我正在改变一个错误跟踪系统,我有用户输入“平台”,“操作系统”和“操作系统版本”的字段,我希望有一个检测按钮,点击时使用不同的“导航器对象属性”,这个很好,并为'平台'工作,我使用大多数(如果不是所有)对象属性来提取信息(见下文) -
<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学校,但它是所有对象的一个很好的例子)
谢谢,帕迪。
答案 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>