使用jscript检测os

时间:2014-08-16 08:00:44

标签: javascript linux unix

当我尝试下面的代码时

<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”,我感到很困惑!

任何人都能解释一下吗?

1 个答案:

答案 0 :(得分:1)

navigator对象提供有关浏览器的信息,而不是操作系统。 appVersion属性提供了有关浏览器编译的操作系统类型的少量信息,但它并不是要告诉您它正在运行的操作系统。

X11是通常在Unix和Linux系统上使用的窗口系统。也可以在Windows和MacOS上使用X11,但这种情况不太常见。如果appVersion包含“X11”,则操作系统可能是Unix Linux,但您不知道哪个。将OStype设置为“类Unix”而不是“Unix”更准确。

navigator.userAgent属性提供更详细的信息。特别是,它在Linux上运行时实际上包含“Linux”。