我正在寻找一种方法来检测操作系统的下载页面使用jQuery或Javascript来推荐Mac与Windows的特定文件。我希望能够在不添加另一个插件到我的页面的情况下做到这一点。jQuery/Javascript检测操作系统没有插件?
33
A
回答
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
为好。
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才能工作。
这里是一个小提琴
相关问题
- 1. 检测操作系统
- 2. 插件系统没有为每个操作系统重建?
- 3. 是否有宏检测操作系统...?
- 4. Dojo有/ sniff和操作系统检测
- 5. jQuery - 检测操作系统和操作系统版本
- 6. efi没有检测到任何操作系统
- 7. 检测操作系统级别的引发事件(操作系统外观)
- 8. CodeIgniter移动操作系统检测
- 9. 检测操作系统语言
- 10. 如何检测操作系统
- 11. 操作系统架构检测脚本
- 12. 从Firefox扩展检测操作系统
- 13. AVR USB检测操作系统
- 14. 鼠标检测,操作系统启动
- 15. 在Clojure中检测操作系统
- 16. C++检测操作系统版本
- 17. PPAPI插件和Chromium操作系统
- 18. 检查所有插座在Linux操作系统打开
- 19. 检测文件是否被操作系统阻止
- 20. 如何检测make文件中的操作系统?
- 21. 如何操作系统...运行...没有一个操作系统运行?
- 22. C++/clrIntelliSense:没有操作符“+”匹配这些操作数。系统:双^ +系统:双^
- 23. 在没有操作系统的嵌入式系统中的malloc
- 24. 在Windows操作系统中的pathos软件包操作系统
- 25. 操作系统
- 26. 操作文件系统
- 27. FUSE文件系统操作
- 28. 如何检测系统信息,如操作系统或设备类型
- 29. 设置操作系统标志来测试操作系统的具体功能
- 30. 操作系统路径插入命令
为什么通过所有去麻烦的时候'navigator.platform'存在? – NickAldwin
因为不推荐使用'navigator.platform'。 查看https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.platform –
,但'appVersion' [也被弃用](https://developer.mozilla.org/en-US /docs/Web/API/NavigatorID.appVersion)? – Gordon