2011-02-11 12 views
6

मैं आईई 7 में कुछ चीजों को डीबग करते समय कल रात इस सवाल पर विचार कर रहा था, जब मैंने <!--[if IE7]>... में टाइप किया तो यह मुझे हुआ कि मैंने <!--[if !IE]> देखा है।<!--[if !IE]> कब उपयोग किया जाएगा?

अब मुझे यह समझने के लिए कि जहां तक ​​मैं इसे समझता हूं, केवल आईई इन सशर्त टिप्पणियों को पहचानता है, इसलिए if NOT IE कहने के लिए कोई मतलब नहीं है, क्या आईई इसे देखता है और कहता है "आईएएम आईई, इसलिए यह लागू नहीं होता है मुझे? " या क्या लोग भ्रमित हो रहे हैं जिसके साथ ब्राउज़र इसे पहचान सकते हैं?

तो मेरा सवाल है।

आप <!--[if !IE]> का उपयोग कहां करेंगे और इसका उद्देश्य क्या है?

उत्तर

1

AFAIK, अन्य ब्राउज़रों टिप्पणी ब्लॉक के रूप सशर्त टिप्पणियां (इलाज यानी, वे बिल्कुल पार्स नहीं किए जाते हैं)। इसलिए, इस तरह की एक टिप्पणी इंटरनेट एक्सप्लोरर के अलावा कुछ भी हो सकती है (यानी, एक सीएसएस फ़ाइल शामिल करें) (इसलिए यह [if IE] सशर्त टिप्पणियों के विपरीत है)। इस तरह की टिप्पणियों में अपने सभी सीएसएस जोड़ें और देखें कि आईई कैसे व्यवहार करता है: पी।

[संपादित करें]

ठीक है, मैंने अभी जांच की है। यह वास्तव में मूर्ख है। चूंकि <style> टैग सीसी में है, इसलिए अन्य ब्राउज़र इसे बिल्कुल पार्स नहीं करते हैं, इसलिए यह प्रभावी ढंग से शामिल नहीं होता है। आईई वास्तव में इसे "आह, मैं आईई के रूप में व्याख्या करता हूं इसलिए मुझे इसे छोड़ना होगा"। एकमात्र उचित स्पष्टीकरण मैं सोच सकता हूं कि माइक्रोसॉफ्ट कुछ बिंदु पर मानता है कि अन्य ब्राउज़र सशर्त टिप्पणियों को पार्स करना शुरू कर सकते हैं।

+1

वास्तव में? ऐसा लगता है कि ऐसी टिप्पणी कुछ भी नहीं करेगी, क्योंकि आप कहते हैं, वे सशर्त टिप्पणियों का विश्लेषण नहीं करते हैं। आईई एक सशर्त टिप्पणी देखेंगे जो उस पर लागू नहीं होती है और अन्य ब्राउज़रों को केवल एक टिप्पणी-टिप्पणी दिखाई देगी। – Chuck

+0

@Chuck: हाँ, आप बिल्कुल सही हैं -> इसलिए मेरा संपादन। – mingos

+3

एक तरीका है जिसका आप उपयोग कर सकते हैं [अगर! आईई] .. मेरा जवाब जांचें। –

2

मैं कहूंगा कि अगर आप एक स्क्रिप्ट है कि हर आईई के अलावा अन्य ब्राउज़र में काम करता है, आईई इसे चलाने नहीं होगा के रूप में चलाने के लिए चाहते थे यह होगा ...

2

अपने संदेह की पुष्टि करने के लिए यह आपके HTML में ऐसा करने के लिए थोड़े व्यर्थ है, क्योंकि अधिकांश या सभी ब्राउज़र टिप्पणी ब्लॉक की सामग्री को अनदेखा कर देंगे।

यह जब किसी विशेष संस्करण बाहर करने के लिए हालांकि, < तरह चाहने निषेध ऑपरेटर का उपयोग करने के लिए उपयोगी हो सकता है - [! (आईई 6) अगर] >, आईई (IE5 शुरू) के सभी संस्करणों में पार्स किया जा सकता है लेकिन आईई 6 में नहीं।

http://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx

17

आप एक विशेष synax के साथ उपयोग कर सकते हैं:

<!--[if !(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]--> 

इसका मतलब यह है आईई पर ध्यान नहीं देता है कि क्या के बीच में है, लेकिन अन्य ब्राउज़रों सशर्त टिप्पणी के रूप में बंद टिप्पणियों का इलाज और उसकी व्याख्या करते बीच में है ।

+4

+1 यह सही है, और इसके अलावा यह HTML के रूप में मान्य है। एक एमएसडीएन दस्तावेज है जो '' सुझाता है लेकिन यह अमान्य है (मुझे नहीं पता कि माइक्रोसॉफ्ट क्या सोच रहा था)। – BoltClock

+1

अच्छा जवाब, दोस्त, अंगूठे ऊपर। मुझे यह नहीं पता था। – mingos

+0

यह स्वर्ण पदक के योग्य है ;-) –

संबंधित मुद्दे