2011-08-12 14 views
33

मैं मैक बनाम विंडोज के लिए विशिष्ट फ़ाइलों की अनुशंसा करने के लिए jQuery या जावास्क्रिप्ट का उपयोग कर डाउनलोड पेज के लिए ओएस का पता लगाने का एक तरीका ढूंढ रहा हूं। मैं अपने पृष्ठ पर एक और प्लगइन जोड़ने के बिना ऐसा करने की उम्मीद कर रहा था।jQuery/जावास्क्रिप्ट?

उत्तर

54

प्रयास करें:

var os = navigator.platform;

फिर अपने परिणाम के लिए तदनुसार ओएस चर संभाल।

तुम भी navigator वस्तु की प्रत्येक वस्तु के माध्यम से लूप मदद करने के लिए कर सकते हैं वस्तुओं के साथ अधिक परिचित हो:

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

सादा जावास्क्रिप्ट आपको बस चाहिए।

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

देखें लेकिन 'एपवर्जन' [भी बहिष्कृत है] (https://developer.mozilla.org/en-US /docs/Web/API/NavigatorID.appVersion)? – Gordon

6

प्रयास करें:

alert(navigator.appVersion); 

है कि आप एक स्ट्रिंग देना चाहिए कि आप कर सकते हैं ओएस के लिए पार्स।

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; 

यदि आपको पुराने पावरपीसी और नए इंटेल के बीच मैक को अलग करने की आवश्यकता है।

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> 

अब उपयोगकर्ता को अक्षम या ब्लॉक javascripts सकता है वह चाहता है। जावास्क्रिप्ट के साथ लिंक लिखने के विरोध में लिंक अभी भी वहां होंगे, जिसके लिए जावास्क्रिप्ट को काम करने की आवश्यकता है।

यहाँ एक बेला

http://jsfiddle.net/7fmJb/