2012-01-08 33 views
6

मैं पिछले कुछ महीनों से अपनी कंपनी के लिए एक उपयोगकर्ता लिपि लिख रहा हूं, और इसके लिए स्थापना निर्देशों के साथ सिर्फ मुख्य साइट तैयार की है (हमारे कर्मचारी दुनिया भर में आधारित हैं और बहुत कम लोगों ने लिपियों के बारे में सुना है, उन्हें अकेले इस्तेमाल करने दें, इसलिए इस मोर्चे का मतलब है कि मैं स्क्रिप्ट का समर्थन करने में समय बिताता हूं)।jQuery - ऑपरेटिंग सिस्टम और ऑपरेटिंग सिस्टम संस्करण का पता लगाने

मैं क्या करना चाहता हूं, स्थापना पृष्ठ पर, यह पता लगाएं कि वे कौन सा ब्राउज़र और ओएस/ओएस संस्करण उपयोग कर रहे हैं ताकि मैं सबसे प्रासंगिक निर्देशों को बाकी की तुलना में थोड़ा गहरा कर सकूं, या बस अप्रासंगिक अनुभाग प्रदर्शित नहीं कर सकता ।

उदाहरण के लिए आईई 6 के लिए आपको उपयोगकर्ताओं को स्थापित करने के लिए Trixie (मुझे विश्वास है) का उपयोग करना होगा, और यह केवल Win XP पर समर्थित है। आईई 7 विन XP पर समर्थित है, आईई 8 विन XP & विन 7 और आईई 9 पर समर्थित है केवल विन 7 पर समर्थित है। आईई 7 के लिए, 8 & 9 मैं आईईप्रो का उपयोग करने की सलाह दे रहा हूं। Trixie & आईईप्रो के बीच का अंतर यह है कि Trixie को .user.js का फ़ाइल एक्सटेंशन की आवश्यकता होती है जिसे सी:/प्रोग्राम फ़ाइलें/भेलपुरी में सहेजा जाना चाहिए। दूसरी तरफ, आईईप्रो, एक्सटेंशन को .ieuser होने की आवश्यकता है और एक अलग स्थान पर सहेजता है। विशेष रूप से आईई के लिए, मैं संस्करण का पता लगाने और केवल सही लिंक (या तो .user.js या .ieuser प्रदर्शित करता हूं, इस बात पर निर्भर करता है कि उन्हें अपने वर्तमान ब्राउज़र के लिए किस प्लगइन का उपयोग करना चाहिए) ताकि उन्हें सही संस्करण में ले जाया जा सके उस ओएस/ओएस संस्करण के लिए सही बचत पथ के साथ उस ब्राउज़र के लिए फ़ाइल का। क्या यह अब तक कोई समझ में आता है?

मूल रूप से मेरा प्रश्न है, क्या किसी को ऑपरेटिंग सिस्टम संस्करण का पता लगाने के तरीके के बारे में पता है? मैं वर्तमान में http://www.stoimen.com/blog/2009/07/04/jquery-os-detection/ का उपयोग कर रहा हूं लेकिन यह ओएस संस्करण, केवल ओएस नहीं देता है। मैंने नेविगेटर ऑब्जेक्ट में संग्रहीत सभी चर के माध्यम से कोई सफलता नहीं लूप करने का प्रयास किया है। किसी भी तरह की सहायता का स्वागत किया जाएगा।

संपादित करें: नेट्स उत्तर के लिए धन्यवाद, मैंने http://jsfiddle.net/Mu8r5/1/ पर सटीक कोड डाला है। मुझे उम्मीद है कि यह भविष्य में किसी की मदद करेगा।

उत्तर

22

आपकी सबसे अच्छी शर्त navigator.userAgent संपत्ति का उपयोग करना है। यह विंडोज संस्करण संख्या देगा।

OSVERSIONINFO

यहां कुछ उदाहरण का पता लगाने कोड है:: आप कैसे ओएस यहाँ करने के लिए Windows संस्करण संख्या नक्शे की एक तालिका देख सकते हैं

var os = (function() { 
    var ua = navigator.userAgent.toLowerCase(); 
    return { 
     isWin2K: /windows nt 5.0/.test(ua), 
     isXP: /windows nt 5.1/.test(ua), 
     isVista: /windows nt 6.0/.test(ua), 
     isWin7: /windows nt 6.1/.test(ua), 
     isWin8: /windows nt 6.2/.test(ua), 
     isWin81: /windows nt 6.3/.test(ua) 
    }; 
}()); 

if(os.isWin7) { 
    ... 
} 

http://jsfiddle.net/45jEc/

+0

स्निपेट के लिए धन्यवाद - यह एक महान प्रारंभिक बिंदु की तरह दिखता है! जब मैं इसे अंतिम रूप देता हूं तो मैं अपने प्रश्न के भीतर एक jsfiddle पोस्ट करूंगा। – ClarkeyBoy

1

स्टैक ओवरफ़्लो प्रश्न Detect exact OS version from browser उपयोगकर्ता-एजेंट शीर्षलेख से ओएस संस्करण प्राप्त करने के बारे में कुछ रोचक जानकारी में जाता है, जिसमें मेरा मानना ​​है कि एक ही जानकारी है जिसे जावास्क्रिप्ट से एक्सेस किया जा सकता है।

5

आप इस महान जावास्क्रिप्ट पुस्तकालय का उपयोग कर सकते http://www.visitorjs.com/details यह मुक्त-स्रोत हाल ही में

संपादित है: वास्तव में, यह अब http://github.com/codejoust/session.js और मेरी जानकारी के लिए session.js नाम दिया गया है, कि सबसे अच्छा आप प्राप्त कर सकते है।

+1

संकेत के लिए धन्यवाद, मैं मुझे लगता है कि मैं नेट्स के उत्तर के साथ जाऊंगा क्योंकि मैं अपना कोड लिखना पसंद करता हूं (1 - मुझे पता है कि यह वास्तव में क्या करता है और 2 - मैं इस तरह से और सीखता हूं)। मैंने उस कोड को भी देखा है, और दो बार चेक किया है, लेकिन यह ओएस संस्करण तक ही नहीं दिखता है, केवल ओएस। फिर भी धन्यवाद। – ClarkeyBoy

+0

विंडोज 8.1 यानी 11 के लिए कोई अच्छा नहीं है क्योंकि ओ/एस वापस आ गया है क्योंकि एन/ए – Rippo