显示电脑浏览器

时间:2013-03-23 09:46:52

标签: javascript html

我正在使用下面显示的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

我不知道如何继续。

请帮忙。提前谢谢。

3 个答案:

答案 0 :(得分:0)

请改用navigator.appName。我不确定这是否会返回正确的名称(由于某种原因,它会在Chrome中返回'Netscape'。navigator还有some other properties,例如appVersion,您可以使用。

答案 1 :(得分:0)

kennebec Browser detection in JavaScript?

中的回答
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

答案 2 :(得分: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 Try/Catch

修改

如果要显示特定的应用程序名称和版本,请查看this great SO answer。有了这个,最终的代码将是:

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]
}