当我尝试下面的代码时
<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”,我感到很困惑!
任何人都能解释一下吗?
答案 0 :(得分:1)
navigator
对象提供有关浏览器的信息,而不是操作系统。 appVersion
属性提供了有关浏览器编译的操作系统类型的少量信息,但它并不是要告诉您它正在运行的操作系统。
X11是通常在Unix和Linux系统上使用的窗口系统。也可以在Windows和MacOS上使用X11,但这种情况不太常见。如果appVersion
包含“X11”,则操作系统可能是Unix 或 Linux,但您不知道哪个。将OStype
设置为“类Unix”而不是“Unix”更准确。
navigator.userAgent
属性提供更详细的信息。特别是,它在Linux上运行时实际上包含“Linux”。