2011-08-12 29 views

回答

54

尝试:

var os = navigator.platform;

然后进行相应处理OS变量的结果。

您还可以遍历navigator对象的每个对象,以帮助您更与对象熟悉:

<script type="text/javascript"> 
for(var i in navigator){ 
    console.log(i+"="+navigator[i]+'<br>'); 
} 
</script> 
31

普通JavaScript可能就是您所需要的。

var OSName="Unknown OS"; 
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows"; 
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS"; 
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX"; 
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux"; 

document.write('Your OS: '+OSName); 

尼克建议你可以使用navigator.platform为好。

+4

为什么通过所有去麻烦的时候'navigator.platform'存在? – NickAldwin

+1

因为不推荐使用'navigator.platform'。 查看https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.platform –

+3

,但'appVersion' [也被弃用](https://developer.mozilla.org/en-US /docs/Web/API/NavigatorID.appVersion)? – Gordon

6

尝试:

alert(navigator.appVersion); 

这应该给你一个字符串,你可以解析OS。

13

据我所知platform是导航器对象上较少欺骗的属性。 你可以用它来获得布尔值。

var isMac = navigator.platform.toUpperCase().indexOf('MAC')!==-1; 
var isWindows = navigator.platform.toUpperCase().indexOf('WIN')!==-1; 
var isLinux = navigator.platform.toUpperCase().indexOf('LINUX')!==-1; 

如果您需要区分旧的PowerPc和新的Intel之间的Mac。

var isMacPpc=navigator.platform==="MacPPC"; 
var isMacIntel=navigator.platform==="MacIntel"; 

https://developer.mozilla.org/en/DOM/window.navigator.platform

5
<script> 

osName = 'Unknown'; 

function nav(x, y, z) { 
    z = z || y; 
    if (navigator[x] && navigator[x].indexOf(y) !== -1) { 
     osName = z; 
    } 
} 

/* navigator  value  download */ 
nav("appVersion", "X11", "UNIX" ); 
nav("appVersion", "Mac", "MacOS" ); 
nav("appVersion", "Linux"   ); 
nav("userAgent", "Linux"   ); 
nav("platform", "Linux"   ); 
nav("appVersion", "Win", "Windows"); 
nav("userAgent", "Windows"   ); 
nav("platform", "Win", "Windows"); 
nav("oscpu",  "Windows"   ); 

document.getElementById("download"+osName).className = "knownOS"; 

</script> 

确保正确的下载链接很容易找到,但没有隐藏其他操作系统的链接。人们可能仍然需要这些。

<style> 

#downloadUNIX, #downloadMacOS, #downloadLinux, #downloadWindows { 
    color:#6D94F2; 
    line-height:35px; 
    margin:24px 0 24px 0; 
    padding:10px; 
} 
.knownOS { 
    background-color:#F7ECAD !important; 
    border:2px solid #E8913A; 
    color:#133CC4 !important; 
    font-weight:bold; 
} 

</style> 

而且一些HTML

<ul> 
    <li><a id="downloadUNIX" href="unix Link Here" >Download Napster-9000 for UNIX</a></li> 
    <li><a id="downloadWindows" href="windows Link Here">Download Napster-9000 for Windows</a></li> 
    <li><a id="downloadMacOS" href="mac os link here" >Download Napster-9000 for OS X</a></li> 
    <li><a id="downloadLinux" href="linux Link Here" >Download Napster-9000 for Linux</a></li> 
</ul> 

现在,用户可如果他想要禁用或块的JavaScript。链接仍然会在那里,而不是用JavaScript编写链接,这需要javascript才能工作。

这里是一个小提琴

http://jsfiddle.net/7fmJb/