使用JavaScript或jQuery检测Mac OS X或Windows计算机的最佳方法
所以我试图移动一个“closures”button的左侧,当用户在Mac和右侧,当用户在PC上。 现在我正在通过检查用户代理来做这件事,但是对于可靠的操作系统检测来说,这太容易被欺骗了。 是否有确定的方式来检测浏览器运行的操作系统是Mac OS X还是Windows? 如果没有,有什么比用户代理嗅探更好?
当userAgentstring发生更改时, window.navigator.platform属性不会被欺骗。 我在我的Mac上testing过,如果我将userAgent更改为iPhone或Chrome Windows, navigator.platform仍为MacIntel。

该属性也是只读的

我可以拿出下面的表格
Mac电脑
Mac68KMacintosh 68K系统。
MacPPCMacintosh PowerPC系统。
MacIntelMacintosh英特尔系统。iOS设备
iPhoneiPhone。
iPodiPod Touch。
iPadiPad。
 现代苹果机返回navigator.platform == "MacIntel"但给一些“未来certificate”不使用完全匹配,希望他们将来会改变到像MacARM或MacQuantum东西。 
 var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0; 
要包含也使用“左侧”的iOS
 var isMacLike = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i)?true:false; var isIOS = navigator.platform.match(/(iPhone|iPod|iPad)/i)?true:false; 
 var is_OSX = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false; var is_iOS = navigator.platform.match(/(iPhone|iPod|iPad)/i) ? true : false; var is_Mac = navigator.platform.toUpperCase().indexOf('MAC') >= 0; var is_iPhone = navigator.platform == "iPhone"; var is_iPod = navigator.platform == "iPod"; var is_iPad = navigator.platform == "iPad"; /* Output */ var out = document.getElementById('out'); if (!is_OSX) out.innerHTML += "This NOT a Mac or an iOS Device!"; if (is_Mac) out.innerHTML += "This is a Mac Computer!\n"; if (is_iOS) out.innerHTML += "You're using an iOS Device!\n"; if (is_iPhone) out.innerHTML += "This is an iPhone!"; if (is_iPod) out.innerHTML += "This is an iPod Touch!"; if (is_iPad) out.innerHTML += "This is an iPad!"; out.innerHTML += "\nPlatform: " + navigator.platform; 
 <pre id="out"></pre> 
就这么简单:
 function isMacintosh() { return navigator.platform.indexOf('Mac') > -1 } function isWindows() { return navigator.platform.indexOf('Win') > -1 } 
你可以做一些有趣的事情,比如:
 var isMac = isMacintosh(); var isPC = !isMacintosh(); 
这是你想要的? 否则,让我知道,我会删除这个职位。
试试这个jQuery插件: http : //archive.plugins.jquery.com/project/client-detect
演示: http : //www.stoimen.com/jquery.client.plugin/
这是基于quirksmode BrowserDetect一个用于jQuery浏览器/ os检测插件的包装。
 对于敏锐的读者: 
  http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/ 
  http://www.quirksmode.org/js/support.html 
围绕插件的更多代码驻留在这里: http : //www.stoimen.com/jquery.client.plugin/jquery.client.js
那么,Windows和Mac并不是那里唯一的平台。 我写了这个检测-OS组件,使用相同的技术,检查更多的边缘情况,但也为其他平台,如Linux,Android,iOS …
随意导入它并使用如下例所示:
 detectOs.isAndroid() => true/false detectOs.isIos() => true/false detectOs.isWindows() => true/false detectOs.isBlackBerry() => true/false detectOs.isMac() => true/false detectOs.isLinux() => true/false detectOs.get() => iOS/Android/Windows/Linux/Mac/BlackBerry/Unknown