मान लिया जाये कि ...
- ... कि यह IE के पुराने संस्करणों का क्रंकी रेंडरिंग इंजन है जिसका आप पता लगाने में रुचि रखते हैं, एक स्टाइल को पुराने IE में ठीक से देख सकते हैं (अन्यथा, फीचर डिटेक्शन का उपयोग करें)
- ... कि आप सिर्फ HTML में सशर्त टिप्पणी नहीं जोड़ सकते - जे एस प्लगइन्स कि किसी भी पन्ने (अन्यथा, बस पर सशर्त वर्गों की चाल करने के लिए लागू किया जा सकता के लिए उदाहरण के लिए
<body>या <html>)
... तो यह शायद सबसे अच्छी चाल (पर आधारित) है इस गैर- jQuery , थोड़ा कम लचीला संस्करण )। यह तब के लिए परीक्षण बनाता है और एक उपयुक्त सशर्त टिप्पणी को हटा देता है।
(IE10 + 'मानक मोड' में सशर्त टिप्पणियों को अनदेखा किया जाता है - लेकिन यह ठीक होना चाहिए क्योंकि IE10 + 'मानक मोड' में एक पागल रेंडरिंग इंजन नहीं है!)
इस समारोह में ड्रॉप:
function isIE( version, comparison ){
var $div = $('<div style="display:none;"/>');
// Don't chain these, in IE8 chaining stops some versions of jQuery writing the conditional comment properly
$div.appendTo($('body'));
$div.html('<!--[if '+(comparison||'')+' IE '+(version||'')+']><a> </a><![endif]-->');
var ieTest = $div.find('a').length;
$div.remove();
return ieTest;
}
फिर इसे इस तरह उपयोग करें:
if(isIE()){ /* runs in all versions of IE after 4 before standards-mode 10 */ }
if(isIE(8)){ /* runs in IE8 */ }
if(isIE(9)){ /* runs in IE9 */ }
if(isIE(8,'lte')){ /* runs in IE8 or below */ }
if(isIE(6,'lte')){ /* if you need this, I pity you... */ }
मैं इस फ़ंक्शन के परिणामों को कैशिंग करने का सुझाव दूंगा ताकि आपको इसे दोहराना न पड़े। उदाहरण के लिए, आप (comparison||'')+' IE '+(version||'')किसी ऑब्जेक्ट में इस परीक्षण के परिणाम के लिए स्टोर करने और जांचने के लिए स्ट्रिंग के रूप में उपयोग कर सकते हैं ।