当我尝试下面的代码
<html>
<body>
<script>
var OStype ="Unknown OS";
if(navigator.appVersion.indexOf("Linux")!=-1) OStype ="Linux";
else if(navigator.appVersion.indexOf("X11")!=-1) OStype ="Unix";
else if (navigator.appVersion.indexOf("Mac") != -1) OStype = "MacOS";
else if(navigator.appVersion.indexOf("Win")!=-1) OStype ="Windows";
alert("OS is :"+OStype);
</script>
</body>
</html>
输出是:Unix
但是我正在使用“ Linux Ubuntu 12.04”,这让我感到困惑!
有人可以解释一下吗?
最佳答案
navigator
对象提供有关浏览器而不是操作系统的信息。 appVersion
属性提供了有关浏览器所针对的操作系统类型的少量信息,但这并不是要告诉您确切的操作系统。
X11是窗口系统,通常在Unix和Linux系统上使用。也可以在Windows和MacOS上使用X11,但这并不常见。如果appVersion
包含“ X11”,则操作系统可能是Unix或Linux,但是您不知道哪个。将OStype
设置为“类Unix”而不是“ Unix”会更准确。navigator.userAgent
属性提供更多详细信息。特别是在Linux上运行时,实际上包括“ Linux”。