Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jscript检测操作系统_Javascript_Linux_Unix - Fatal编程技术网

Javascript 使用jscript检测操作系统

Javascript 使用jscript检测操作系统,javascript,linux,unix,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 ="U

当我尝试下面的代码时

<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。

您应该阅读和。