<! - [अगर! IE]> काम नहीं कर रहा है


139

मुझे दिक्कत हो रही है

<!--[if !IE]>

काम करने के लिए। मैं सोच रहा था कि क्या यह है क्योंकि मैं अपने दस्तावेज़ में यह है

<!doctype html>
<!--[if lt IE 7]> <html class="ie6 oldie"> <![endif]-->
<!--[if IE 7]>    <html class="ie7 oldie"> <![endif]-->
<!--[if IE 8]>    <html class="ie8 oldie"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="">
<!--<![endif]-->

जब मैं जोड़ता हूं

<!--[if !IE]><!-->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" />
<!--<![endif]-->

मेरे हेडर के लिए किसी कारण से यह काम नहीं करता है। हालाँकि अगर मैं जोड़ूँ

<!--[if !IE]><!-->
    <style>
        All my css in here
    </style>
    <!--<![endif]-->

वास्तविक HTML पेज (हेडर में) यह काम करता है। कोई सुझाव? चियर्स

मेरे सवाल का अपडेट

ठीक है, जब मैंने हटा दिया तो <!-->मैंने केवल IE में जाँच की जो काम कर रहा था लेकिन अब FF में no-ie.css को FF पर भी लागू कर दिया गया। तो मैंने वापस जोड़ा <!-->और / (और मुख्य टेम्पलेट में जोड़ा ताकि cms इसे वापस नहीं जोड़ेंगे) और सभी वापस FF में काम कर रहा है, लेकिन अब स्टाइलशीट IE में लागू किया जा रहा है! इसलिए मैंने कोशिश की

<!--[if IE]>
<link type="text/css" rel="stylesheet" href="https://stackoverflow.com/stylesheets/no-ie.css">
<![endif]-->

तथा

<!--[if !IE]> -->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css">
<!-- <![endif]-->

और यह काम नहीं किया। मूल रूप से मैं इस पृष्ठ को http://css-tricks.com/examples/ResponsiveTables/responsive.php पर काम करने की कोशिश कर रहा हूं, लेकिन सीएसएस को स्टाइलशीट में स्थानांतरित कर रहा हूं । निश्चित रूप से यह सरल हो गया है। मैं क्या खो रहा हूँ? अगर मुझे नहीं करना है तो मैं JQuery का उपयोग नहीं करूँगा। चियर्स


1
आपको इसके <!-->तुरंत बाद की जरूरत नहीं है<!--[if !IE]>
Techfoobar

29
नोट: यदि IE केवल IE9 तक काम करता है।
कैमरोनजोसेब

कुछ लोगों ने कुछ पृष्ठों पर अजीब IF आईई संदेश छोड़ दिए।
neverMind9

@cameronjonesweb क्या आप किसी संदर्भ को लिंक कर सकते हैं अन्यथा ऐसे बयान उपयोगी नहीं हैं?
11

@trainoasis, मैं अपनी टिप्पणी को छोड़कर 5 साल
कैमरूनजोनस्विब

जवाबों:


236
<!--[if !IE]><!--><script src="zepto.min.js"></script><!--<![endif]-->
<!--[if IE]><script src="jquery-1.7.2.min.js"></script><![endif]-->

नोट: ये सशर्त टिप्पणियाँ अब IE 10 से समर्थित नहीं हैं ।


39
जून 2013 तक, इस पृष्ठ पर एकमात्र सही उत्तर है।
JohnB

2
क्या यह रेखा समापन कोण कोष्ठक से गायब है? यह नहीं होना चाहिए: <script src = "zepto.min.js"> </ script> - <[endif] -> <- - [अगर आईई!]!> <!> <!>
n00shie

1
यह, अन्य सभी सशर्त टिप्पणियों के समाधानों के साथ, IE 10 / IE 11 का पता नहीं लगाएगा
लॉयड बैंक

9
यह IE 11 में काम नहीं करता है, यह स्क्रिप्ट लोड करता है, भले ही स्थिति हो! IE
Giedrius

49
IE10 से @Giedrius, सशर्त टिप्पणियों का समर्थन नहीं किया जाता है : msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx
acdcjunior

70

IE के अलावा अन्य ब्राउजर सशर्त बयानों को टिप्पणियों के रूप में मानते हैं क्योंकि वे टिप्पणी टैग के अंदर संलग्न हैं।

<!--[if IE]>
Non-IE browsers ignore this
<![endif]-->

हालाँकि, जब आप एक ब्राउज़र को लक्षित कर रहे हैं जो IE नहीं है तो आपको कोड के बाद एक और एक के बाद 2 टिप्पणियों का उपयोग करना होगा। IE उनके बीच कोड को अनदेखा करेगा, जबकि अन्य ब्राउज़र इसे सामान्य कोड के रूप में मानेंगे। इसलिए गैर-IE ब्राउज़र को लक्षित करने के लिए सिंटैक्स है:

<!--[if !IE]-->
IE ignores this
<!--[endif]-->

नोट: ये सशर्त टिप्पणियाँ अब IE 10 से समर्थित नहीं हैं ।


1
एक दम बढ़िया। उसके लिए धन्यवाद। स्टाइलशीट हालांकि मेरे द्वारा अब की गई समस्या को हल करती है, जो कि शीर्ष लेख के पृष्ठ के शीर्ष पर है, जो </! [[If! IE] -> <! - [[endif] -> (टैग गया) में दिखाई देता है शीर्षलेख क्षेत्र में शरीर नहीं)
user1516788

21
-1: इस सवाल का जवाब है गलत है क्योंकि <!--[if !IE]-->IE ignores this<!--[endif]-->है नहीं आईई से छिपा! (9, or, या ९)
जॉन ०

3
मेरे जवाब में किसी ने भी काम नहीं किया, शायद आईई 10 की हालिया रिलीज़ (आईई 9 मोड में भी कोशिश की गई) में कुछ बदल गया। - सभी प्रयास सभी ब्राउज़रों (IE और IE) पर IE अनुभाग तक पहुँचने का प्रयास किया।
डैनी व्रॉड

2
IE10 सशर्त बयानों का समर्थन नहीं करता है।
स्कोर्पियस

1
व्हाट्सएप में अवगत रहें! - [[अगर आईई]> और <! [एंडिफ] -> - - इसमें कोई व्हाट्सएप नहीं होना चाहिए (जैसे बीच में! - और [।] यह व्हाट्सएप के साथ काम नहीं करता है।
रॉबर्ट Skar Skycki

37

यदि कोई व्यक्ति अभी भी इस पृष्ठ पर पहुंचता है, तो यह सोचकर कि क्यों लक्ष्यीकरण काम नहीं करता है। IE 10 और उसके बाद अब सशर्त टिप्पणियों का समर्थन नहीं करते हैं। एमएस आधिकारिक वेबसाइट से:

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

अधिक जानकारी के लिए कृपया यहाँ देखें: http://msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx

यदि आपको लक्ष्य बनाने की सख्त आवश्यकता है, तो आप इस jquery कोड का उपयोग कर सकते हैं, अर्थात, यानी ब्राउज़रों को लक्षित करने के लिए अपनी css में .ie वर्ग को जोड़ने के लिए।

if ($.browser.msie) {
 $("html").addClass("ie");
}

अपडेट: $ .browser jQuery 1.9 के बाद उपलब्ध नहीं है। यदि आप 1.9 से ऊपर के jQuery में अपग्रेड करते हैं या आप पहले से ही इसका उपयोग करते हैं, तो आप jQuery के बाद jQuery माइग्रेशन स्क्रिप्ट को शामिल कर सकते हैं ताकि यह लापता भागों को जोड़ दे: jQuery माइग्रेट प्लगइन

वैकल्पिक रूप से, संभव वर्कअराउंड के लिए इस थ्रेड की जांच करें: jQuery 1.9.1 को अपडेट करने के बाद ब्राउजर


यह एक अच्छा अच्छा समाधान है! मुझे कुछ वर्गों को लागू करने के लिए डोम ट्री पर इसका उपयोग करने की भी आवश्यकता नहीं है।
एमएम

2
कृपया ध्यान दें, यह jQuery के 1.3 के बाद से हटा दिया गया है और 1.9 में हटा दिया गया है
Jøran

13

मैं इसका उपयोग करता हूं और यह काम करता है:

<!--[if !IE]><!--> if it is not IE <!--<![endif]-->

यह फ़ायरफ़ॉक्स में मेरे लिए एक टिप्पणी के रूप में पूरी सामग्री का इलाज करता है। @Charmander समाधान दोनों IE और Firefox के लिए काम किया - <[अगर आईई!]!> <[Endif]!>
टॉम चेम्बरलेन

3
नोट: ये सशर्त टिप्पणियाँ अब IE 10 से समर्थित नहीं
Flim

12

डाउनलेवल-सशर्त "टिप्पणियों" के लिए Microsoft-अनुशंसित सिंटैक्स यह है:

<![if !IE]>
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" />
<![endif]>

ये टिप्पणी नहीं हैं, लेकिन वे ठीक से काम करते हैं।


इस लिंक को मिला जो इस उत्तर का समर्थन करता है, इसमें बहुत सी अन्य जानकारी भी है जो थ्रेड की मदद कर सकती है, मुझे लगता है कि यह एक महत्वपूर्ण विषय है ... केवल अंतर मुझे लगता है कि क्या कोई छिपा हुआ या प्रकट सिंटैक्स उपयोग किया जाता है और मुझे यकीन नहीं है कि यह कैसे है अन्य ब्राउज़रों को प्रभावित करेगा ... msdn.microsoft.com/en-us/library/ms537512.ASPX
user1360809

2
नोट: ये सशर्त टिप्पणियाँ अब IE 10 से समर्थित नहीं
फ्लिम्ड

8

सबसे पहले सही सिंटैक्स है:

<!--[if IE 6]>
<link type="text/css" rel="stylesheet" href="https://stackoverflow.com/stylesheets/ie6.css" />
<![endif]-->

इस पोस्ट को आज़माएं: http://www.quirksmode.org/css/condcom.html और http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

एक और चीज जो आप कर सकते हैं:

JQuery के साथ ब्राउज़र की जाँच करें:

if($.browser.msie){ // do something... }

इस मामले में आप कुछ तत्वों के लिए सीएसएस नियम बदल सकते हैं या नया सीएसएस लिंक संदर्भ जोड़ सकते हैं:

इसे पढ़ें: http://rickardnilsson.net/post/2008/08/02/Applying-stylesheets-dynamically-with-jQuery.aspx


अधिक सटीक उत्तर के लिए ऊपर उपयोगकर्ता 1324409 का उत्तर देखें।
क्रिस पीटर्स

2
JQuery अपडेट के कारण, जो कोई भी $ .browser.msie का उपयोग करता है, उसे jquery-migrate.js को शामिल करना होगा और फिर यह काम करेगा।
एस्पायरिंगकैनेडियन

1
नोट: ये सशर्त टिप्पणियाँ अब IE 10 से समर्थित नहीं
फ्लिम्ड

उत्तर में दिया गया लिंक मृत है।
पंकज

8

<!-- [if !IE] --> आईई 8 मीडिया के सवालों से भयानक है, इसलिए आपको माय फुल सीएसएस ब्लॉक के लिए एक स्थान रखना होगा

<!-- IE 8 or below -->   
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css"  href="https://stackoverflow.com/Resources/css/master1300.css" />        
<![endif]-->
<!-- IE 9 or above -->
<!--[if gte IE 9]>
<link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)"
    href="https://stackoverflow.com/Resources/css/master1300.css" />
<link rel="stylesheet" type="text/css" media="(max-width: 480px)"
    href="https://stackoverflow.com/Resources/css/master480.css" />        
<![endif]-->
<!-- Not IE -->
<!-- [if !IE] -->
<link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)"
    href="/Resources/css/master1300.css" />
<link rel="stylesheet" type="text/css" media="(max-width: 480px)"
    href="/Resources/css/master480.css" />
<!-- [endif] -->

आपकी टिप्पणी के लिए धन्यवाद, लेकिन अगर मैं उपयोग करता हूं <! - [अगर! IE! - [एक एंडिफ़] -> फिर अन्य ब्राउज़र इस पर भी लागू होते हैं।
user1516788

3
क्या वह बिंदु, अन्य ब्राउज़रों को उस अनुभाग को लागू करने के लिए नहीं है?
जॉन हेफोर्ड 16

1
-1: !IEयहां बताई गई तकनीक वास्तव में IE 7 के लिए 10. के माध्यम से टिप्पणी ब्लॉक को निष्पादित करेगी।
इयान कैंपबेल

1
नोट: ये सशर्त टिप्पणियाँ अब IE 10 से समर्थित नहीं
फ्लिम्ड

8

IE उपयोगकर्ताओं को लक्षित करने के लिए:

<!--[if IE]>
Place Content here for Users of Internet Explorer.
<![endif]-->

अन्य सभी को लक्षित करने के लिए:

<![if !IE]>
Place Content here for Users of all other Browsers.
<![endif]>

सशर्त टिप्पणियाँ केवल इंटरनेट एक्सप्लोरर द्वारा पता लगाई जा सकती हैं, अन्य सभी ब्राउज़र इसे सामान्य टिप्पणियों के रूप में पिरोते हैं।

IE 6,7 आदि को लक्षित करने के लिए .. आपको "ग्रेटर थान इक्वल" या "लेटर थान (समान)" का प्रयोग करना होगा। इस प्रकार सं।

से बड़ा या बराबर:

<!--[if gte IE 7]>
Place Content here for Users of Internet Explorer 7 or above.
<![endif]-->

के मुकाबले कम:

<!--[if lt IE 6]>
Place Content here for Users of Internet Explorer 5 or lower.
<![endif]-->

स्रोत: mediacollege.com


2
नोट: ये सशर्त टिप्पणियाँ अब IE 10 से समर्थित नहीं
फ्लिम्ड

7

यह IE9 तक के लिए है

<!--[if IE ]>
<style> .someclass{
    text-align: center;
    background: #00ADEF;
    color: #fff;
    visibility:hidden;  // in case of hiding
       }
#someotherclass{
    display: block !important;
    visibility:visible; // in case of visible

}
</style>

यह IE9 के बाद के लिए है

  @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {enter your CSS here}

5

IE ब्राउज़र के लिए:

<!--[if IE]>
<meta http-equiv="Content-Type" content="text/html; charset=Unicode">
<![endif]-->

सभी गैर-IE ब्राउज़रों के लिए:

<![if !IE]>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<![endif]>

सभी IE से अधिक 8 या सभी गैर-IE ब्राउज़रों के लिए:

<!--[if (gt IE 8)|!(IE)]><!--><script src="/_JS/library/jquery-2.1.1.min.js"></script><!--<![endif]-->

3

सशर्त टिप्पणी एक टिप्पणी है <!--[if IE]>जिसके साथ IE को छोड़कर किसी भी ब्राउज़र द्वारा पढ़ा नहीं जा सकता है।

2011 से सशर्त टिप्पणी के रूप में उस समय Microsoft द्वारा घोषित के रूप में IE 10 शुरू करने का समर्थन नहीं करता है https://msdn.microsoft.com/en-us/library/hh801214(v=vs.85).aspx

सशर्त टिप्पणियों का उपयोग करने का एकमात्र विकल्प IE को अपनी साइट को IE 9 के रूप में चलाने के लिए अनुरोध करना है जो सशर्त टिप्पणियों का समर्थन करता है।

आप अपनी स्वयं की सीएसएस और / या जेएस फाइलों को केवल यानी अन्य ब्राउज़रों के लिए लिख सकते हैं और उसे लोड या निष्पादित नहीं करेंगे।

यह कोड स्निपेट दिखाता है कि IE 10 या 11 रन कैसे बनाएं-only.css और ie-only.js जिसमें IE संगतता समस्याओं को हल करने के लिए कस्टम कोड हैं।

    <html>
      <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
      <!--[if IE]>
            <meta http-equiv="Content-Type" content="text/html; charset=Unicode">
            <link rel="stylesheet" type="text/css" href='/css/ie-only.css' />
            <script src="/js/ie-only.js"></script>
      <![endif]-->
    </html>

1

यदि आप IE 10 या इसके बाद के संस्करण के साथ काम कर रहे हैं, जैसा कि http://tanalin.com/en/articles/ie-version-js/ में उल्लेख किया गया है, तो सशर्त टिप्पणियां अब समर्थित नहीं हैं। आप वैकल्पिक विधि के रूप में https://gist.github.com/jasongaylord/5733469 का उल्लेख कर सकते हैं , जिसे त्रिशूल संस्करण के साथ ही नेविगेटर से भी जांचा जाता है। यह भी पुष्टि की जाती है कि ब्राउज़र संगतता मोड में काम कर रहा है।


1

यह संस्करण 6 (IE7, 8, 9, 10, आदि) से अधिक सभी ब्राउज़रों के लिए मेरे लिए काम करता है, Chrome 3 अब तक जो भी है, और FF ver 3 up to what it is):

//test if running in IE or not
        function isIE () {
            var myNav = navigator.userAgent.toLowerCase();
            return (myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1) ? true : false;
        }

0

मैं IE ब्राउज़र का पता लगाने के लिए इस जावास्क्रिप्ट का उपयोग कर रहा हूं

if (
    navigator.appVersion.toUpperCase().indexOf("MSIE") != -1 ||
    navigator.appVersion.toUpperCase().indexOf("TRIDENT") != -1 ||
    navigator.appVersion.toUpperCase().indexOf("EDGE") != -1
)
{
    $("#ie-warning").css("display", "block");
}

0

धन्यवाद फर्नांडो 68, मैंने इसका इस्तेमाल किया:

function isIE () {
     var myNav = navigator.userAgent.toLowerCase();
     return (myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1) ? true : false;
}

if(isIE()){
     $.getScript('js/script.min.js', function() {
            alert('Load was performed.');
     });
}

-1

मुझे यह कोड मेरे ब्राउज़र पर काम करता है:

<!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
  <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->

इस कोड के लिए ध्यान दें: HTML5 शिव और Respond.js HTML8 तत्वों और मीडिया प्रश्नों का IE8 समर्थन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.