उपयोगकर्ता-एजेंट से IE संस्करण प्राप्त करें
var ie = 0;
try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; }
catch(e){}
यह कैसे काम करता है: सभी IE संस्करणों के लिए उपयोगकर्ता-एजेंट स्ट्रिंग में एक भाग "MSIE स्पेस संस्करण " या "ट्राइडेंट अन्य-टेक्स्ट आरवी स्पेस-या-कोलन संस्करण " शामिल है। यह जानते हुए, हम एक String.match()नियमित अभिव्यक्ति से संस्करण संख्या को पकड़ लेते हैं । एक try-catchब्लॉक का उपयोग कोड को छोटा करने के लिए किया जाता है, अन्यथा हमें गैर-IE ब्राउज़रों के लिए सरणी सीमा का परीक्षण करना होगा।
ध्यान दें: उपयोगकर्ता-एजेंट को कभी-कभी अनजाने में छोड़ा या छोड़ा जा सकता है, यदि उपयोगकर्ता ने अपने ब्राउज़र को "संगतता" पर सेट किया हो। हालांकि यह व्यवहार में एक मुद्दे की तरह प्रतीत नहीं होता है।
उपयोगकर्ता-एजेंट के बिना IE संस्करण प्राप्त करें
var d = document, w = window;
var ie = ( !!w.MSInputMethodContext ? 11 : !d.all ? 99 : w.atob ? 10 :
d.addEventListener ? 9 : d.querySelector ? 8 : w.XMLHttpRequest ? 7 :
d.compatMode ? 6 : w.attachEvent ? 5 : 1 );
यह कैसे काम करता है: IE का प्रत्येक संस्करण पिछले संस्करणों में नहीं मिली अतिरिक्त सुविधाओं के लिए समर्थन जोड़ता है । तो हम सुविधाओं को टॉप-डाउन तरीके से जांच सकते हैं। संक्षिप्तता के लिए एक टर्नरी अनुक्रम का उपयोग यहां किया जाता है, हालांकि if-thenऔर switchकथन भी काम करेंगे। वैरिएबल ieको पूर्णांक 5-11, या 1 में पुराने या 99 के नए / गैर-IE के लिए सेट किया गया है। आप इसे 0 पर सेट कर सकते हैं यदि आप वास्तव में IE 1-11 के लिए परीक्षण करना चाहते हैं।
नोट: यदि आपका कोड किसी तृतीय-पक्ष स्क्रिप्ट के साथ पृष्ठ पर चलाया जाता है, तो ऑब्जेक्ट डिटेक्शन टूट सकता है, जैसे कि चीजों के लिए पॉलीफिल्स को जोड़ना document.addEventListener। ऐसी स्थितियों में उपयोगकर्ता-एजेंट सबसे अच्छा विकल्प है।
पता लगाएँ कि क्या ब्राउज़र आधुनिक है
यदि आप केवल इस बात में रुचि रखते हैं कि कोई ब्राउज़र अधिकांश HTML 5 और CSS 3 मानकों का समर्थन करता है या नहीं, तो आप यथोचित मान सकते हैं कि IE 8 और निम्न प्राथमिक समस्या ऐप्स हैं। के लिए परीक्षण window.getComputedStyleआपको आधुनिक ब्राउज़रों का एक अच्छा मिश्रण देगा, साथ ही (IE 9, FF 4, Chrome 11, Safari 5, Opera 5.5)। IE 9 मानकों के समर्थन पर बहुत सुधार करता है, लेकिन देशी CSS एनीमेशन को IE 10 की आवश्यकता होती है।
var isModernBrowser = ( !document.all || ( document.all && document.addEventListener ) );