当我尝试下面的代码

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

09-04 00:26