我正在尋找一種方法來檢測操作系統的下載頁面使用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