2010-12-10 19 views
25

के बजाय वैकल्पिक स्क्रिप्ट चलाएं, मैं एक छवि कैरोसेल स्क्रिप्ट का उपयोग कर रहा हूं जो ब्राउज़र पर काफी भारी है। यह ओपेरा और क्रोम में अच्छा काम करता है, एफएफ में आधे सभ्य और आईई में पूरी तरह से मेरी गेंदों को तोड़ देता है। इसलिए मैं आईई उपयोगकर्ताओं को बिना किसी एक्शन/जेएस के सरल HTML का विकल्प देना चाहता हूं।यदि ब्राउज़र इंटरनेट एक्सप्लोरर है:

स्क्रिप्ट एमटी या jQuery का उपयोग नहीं करता है और इसकी जेएस की 380 लाइनों की तरह नहीं है। क्या आईई उपयोगकर्ताओं को एक सादा HTML विकल्प देना संभव होगा?

var browserName=navigator.appName; if (browserName=="Microsoft Internet Explorer") { // what command can i use? }

+1

ध्यान दें कि नीचे दिए गए सभी (या लगभग) उत्तर सशर्त टिप्पणियों का उल्लेख करते हैं। आईई 10 के बाद सशर्त टिप्पणियां बहिष्कृत की गई हैं। Http://blogs.msdn.com/b/ie/archive/2011/07/06/html5-parsing-in-ie10.aspx?Redirected=true –

उत्तर

21

यह लेख काफी व्याख्यात्मक है: http://msdn.microsoft.com/en-us/library/ms537509%28v=vs.85%29.aspx

यदि आपका जे एस विनीत है, तो आप सिर्फ उपयोग कर सकते हैं:

<!--[IF IE]> 
    <script type="text/javascript"> 
     // IE stuff 
    </script> 
<![endif]--> 
+2

मुझे ' बेकन द्वारा बचाया गया। धन्यवाद! –

+2

आईएस 10 के बाद सशर्त टिप्पणियां बहिष्कृत की गई हैं। Http://blogs.msdn.com/b/ie/archive/2011/07/06/html5-parsing-in-ie10.aspx?Redirected=true –

+0

@AdrienBe क्या वे इंटरनेट एक्सप्लोरर को मारने की कोशिश कर रहे थे? सुविधा को क्यों हटाएं जो हमें इसकी त्रुटियों को समायोजित करने की अनुमति देता है? –

19

आपको IE विशिष्ट जावास्क्रिप्ट शामिल करने के लिए कुछ इस तरह कर सकते हैं सच है, और उसके बाद IE conditional comment के अंदर, मान को गलत पर सेट करें, और यह निर्धारित करने के लिए कि आपका उन्नत कोड चलाना चाहिए या नहीं, इसका मान उपयोग करें। कुछ ऐसा:

<script type="text/javascript">var runFancy = true;</script> 
<!--[if IE]> 
<script type="text/javascript"> 
    runFancy = false; 
    //any other IE specific stuff here 
</script> 
<![endif]--> 
<script type="text/javascript"> 
    if (runFancy) { 
     //do your code that works with sane browsers 
    } 
</script> 
+1

आप "!" भूल गए, मुझे लगता है:

+4

यह गलत है। स्थिति स्क्रिप्ट टैग के बाहर होना चाहिए – wlf

0

ध्यान दें कि आप शुद्ध जेएस में भी निर्धारित कर सकते हैं कि आपके द्वारा लिखे गए ब्राउजर में किस ब्राउजर को निष्पादित किया जा रहा है: window.navigator.userAgent

हालांकि, यह एक अनुशंसित तरीका नहीं है क्योंकि यह ब्राउज़र सेटिंग्स में कॉन्फ़िगर करने योग्य है। अधिक जानकारी उपलब्ध है: https://developer.mozilla.org/fr/docs/DOM/window.navigator.userAgent

4

var browserName = navigator.appName; अगर (browserName == "माइक्रोसॉफ्ट इंटरनेट एक्सप्लोरर") { document.write ("IE के लिए अपने HTML") }

+0

इस उत्तर का उपयोग करने वाले किसी भी व्यक्ति के लिए, पहले इस पोस्ट को देखें। आईई 11 में इस दृष्टिकोण के साथ कुछ संगतता मुद्दे हैं। http://stackoverflow.com/questions/17907445/how-to-detect-ie11 –

9

IE10 + standart स्थिति इंजन परिवर्तन के कारण काम नहीं करते या कुछ अन्य कारणों से, कारण के लिए , आप जानते हैं, यह एमएसआईई है। लेकिन के लिए IE10 + आप अपनी स्क्रिप्ट में इस तरह ख़ाली चलाने की आवश्यकता

if (!!navigator.userAgent.match(/Trident\/7\./)){ 
//do stuff for IE. 
} 
+0

सबसे उपयोगी अद्यतित उत्तर। शीर्ष पर होना चाहिए। – carla

-1

माइक्रोसॉफ्ट के डेवलपर अभिलेखागार में इस स्क्रिप्ट देखें: https://msdn.microsoft.com/en-us/library/ms537509%28v=vs.85%29.aspx

मैं काफी कुछ परियोजनाओं में इस स्क्रिप्ट का इस्तेमाल किया है, किसी भी समस्याओं नहीं था।

0

टेस्ट यह सभी ब्राउज़रों में: अच्छा ब्राउज़रों पर

<![if !IE]><script type="text/javascript">BROWSERIE = false;</script><![endif]> 
<!--[if IE]><script type="text/javascript">BROWSERIE = true;</script><![endif]--> 

पहले सशर्त टिप्पणी काम करता है, दूसरा एक IE पर काम करता है। यह एक वैश्विक var है।systemLanguage और उपयोगकर्ता भाषा सभी ब्राउज़र में अपरिभाषित है: तो फिर तुम किसी भी हिस्से से उस तक पहुँच सकते हैं, या किसी जे एस शामिल अपने पृष्ठ में, तो, यह परीक्षण की तरह:

console.log('isIE = ' + BROWSERIE); 
console.log(typeof BROWSERIE); 
if(BROWSERIE) $('.modal').removeClass('fade'); // for example, if `fade` causes an error in IE. 
+0

बहुत रचनात्मक: बेहतर विचार के बिना एक डाउनवॉटर! –

0

इस प्रयास करें।

if(navigator.userLanguage !== "undefined" && navigator.systemLanguage !== "undefined" && navigator.userAgent.match(/trident/i)) { 
    alert("hello explorer i catch U :D") 
    } 
संबंधित मुद्दे