0

我正在使用下面显示的 javascript 代码将我的计算机浏览器显示为“Firefox 19.0”。

<script language="javascript" type="text/javascript">
function detect()
{
 document.getElementById("bCodeName").innerHTML = navigator.appCodeName;
}
</script>
<div id="bCodeName"></div>
<body onload="detect();"></body>

但是这段代码只是显示:

Mozilla

我不知道如何继续。

请帮忙。提前致谢。

4

3 回答 3

0

改为使用navigator.appName。我不确定这是否返回正确的名称(由于某种原因,它在 Chrome 中返回“Netscape”。navigator还有一些其他属性,您appVersion可以使用。

于 2013-03-23T09:49:03.643 回答
0

正如kennebecJavaScript 中的浏览器检测中回答的那样?

navigator.sayswho= (function(){
  var N= navigator.appName, ua= navigator.userAgent, tem;
  var M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
  if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
  M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?'];
  return M;
 })();

你也可以使用navigator.userAgent

这是一个完整的文档:

http://www.w3schools.com/jsref/prop_nav_useragent.asp

于 2013-03-23T09:50:05.153 回答
0

如前所述,您可以浏览“导航器”对象属性,然后正确解析您感兴趣的属性(例如:“appCodeName”、“appVersion”和无处不在的“userAgent”)。

这样做的两种方法可能是:

function detect()
{
    document.getElementById("bCodeName").innerHTML = navigator.appCodeName + " " + navigator.appVersion.split(" ")[0];
}

或者更短一点:

function detect()
{
    document.getElementById("bCodeName").innerHTML = navigator.userAgent.split(" ")[0].replace("/", " ");
}

您可能会很好地处理异常,以防在解析此数据时出现一些错误。请参阅Javascript 尝试/捕获

编辑:

如果您想显示特定的应用程序名称和版本,请查看这个很棒的 SO 答案。有了这个,最终的代码将是:

function detect()
{
    var N= navigator.appName, ua= navigator.userAgent, tem;
    var M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
    if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
    M = M? [M[1], M[2]]: [N, navigator.appVersion, '-?'];
    document.getElementById("bCodeName").innerHTML = M[0] + " " + M[1]
}
于 2013-03-23T10:02:35.260 回答