जांचें कि क्या उपयोगकर्ता IE का उपयोग कर रहा है


390

मैं एक निश्चित वर्ग के साथ divs पर क्लिक करके नीचे एक फ़ंक्शन कह रहा हूं।

क्या कोई ऐसा तरीका है जो मैं फ़ंक्शन शुरू करते समय देख सकता हूं कि क्या कोई उपयोगकर्ता इंटरनेट एक्सप्लोरर का उपयोग कर रहा है और यदि वह अन्य ब्राउज़रों का उपयोग कर रहा है तो उसे रद्द / रद्द कर दें ताकि यह केवल IE उपयोगकर्ताओं के लिए ही चले? यहां उपयोगकर्ता सभी IE8 या उच्चतर संस्करणों पर होंगे, इसलिए मुझे IE7 और निचले संस्करणों को कवर करने की आवश्यकता नहीं होगी।

अगर मैं बता सकता हूं कि वे किस ब्राउज़र का उपयोग कर रहे हैं, तो यह बहुत अच्छा होगा लेकिन इसकी आवश्यकता नहीं है।

उदाहरण समारोह:

$('.myClass').on('click', function(event)
{
    // my function
});

1
IE या अन्य ब्राउज़रों का पता लगाने के लिए आधुनिकीकरण का उपयोग करें। stackoverflow.com/questions/13478303/…
क्रिस

7
आधुनिक वेब विकास मानकों के अनुसार, IE के पुराने संस्करणों के लिए विकसित करने के लिए यह बुरा अभ्यास है।
रोजसेन

7
वास्तव में, यह "बुरा अभ्यास" मानकों द्वारा खुद को मजबूर किया जाता है, इसलिए यह डेवलपर की गलती नहीं है ... ब्राउज़र्स अलग तरीके से काम करते हैं और कार्यान्वयन मुद्दों पर चश्मा भी नरम होते हैं। आदेश कुछ है कि गाड़ी नहीं और उबाऊ नहीं के रूप में नरक से एक है बनाने के लिए है ब्राउज़र का पता लगाने क्या करना है। मैं एक अन्य सर्वोत्तम अभ्यास सुझाऊंगा With modern web development, it's bad practice to support non-Chromium-based browsers (with Safari not considered to be Chromium-based at all):। क्षमा करें, लेकिन यह पागलपन किसी बिंदु पर और किसी भी तरह समाप्त होना चाहिए ...
user2173353

2
"ब्राउज़र का पता लगाने" पर "फीचर डिटेक्शन" करने के लिए आज बेहतर अभ्यास है। पूछें कि क्या ब्राउज़र इसके बजाय आपको क्या चाहिए।
क्रिस रोजर्स

2
@ क्रिस - माफी ... इसका मतलब है कि एक जोकी टोन का अधिक होना। मैं अपने आनंद को चुराने के लिए IE को दोष देने जा रहा हूं और मुझे कड़वाहट और हताशा के साथ छोड़ रहा हूं। :)
JDB को अभी भी

जवाबों:


477

जावास्क्रिप्ट विधि के नीचे का उपयोग करें:

function msieversion() 
{
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

    if (msie > 0) // If Internet Explorer, return version number
    {
        alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
    }
    else  // If another browser, return 0
    {
        alert('otherbrowser');
    }

    return false;
}

आप Microsoft समर्थन साइट के नीचे विवरण पा सकते हैं:

स्क्रिप्ट से ब्राउज़र संस्करण का निर्धारण कैसे करें

अपडेट: (IE 11 समर्थन)

function msieversion() {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))  // If Internet Explorer, return version number
    {
        alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
    }
    else  // If another browser, return 0
    {
        alert('otherbrowser');
    }

    return false;
}

27
यद्यपि यह अच्छी तरह से काम करेगा क्योंकि ua चर MSIE के साथ शुरू नहीं होगा, लेखन if (msie > 0)भ्रामक है। यदि मान नहीं मिला है, तो indexOf () फ़ंक्शन रिटर्न -1 नहीं 0. इसलिए if (msie > -1)अधिक व्याख्यात्मक होगा।
नेविल नाजराने

61
यह मेरे लिए IE11 में NaN लौटाता है।
वेरिज्म

7
@ श्रद्धा और अन्य: इस उत्तर की जाँच करें जो इसके लिए भी काम करता है IE 11: stackoverflow.com/a/21712356/114029
लेनियल मैककैफेर्री

8
navigator.userAgent.indexOf ("MSIE")> 0 || navigator.userAgent.indexOf ("त्रिशूल")> 0 || navigator.userAgent.indexOf ("एज")> 0
tylermauthe

12
/Edge\/|Trident\/|MSIE /.test(window.navigator.userAgent)मुझे पता है कि यह 10 और 11 पर काम करता है। यदि आप <IE9 और एज को सत्यापित कर सकते हैं, तो उत्तर को संपादित करें।
Indolering

595

यह कई वर्षों बाद है, और एज ब्राउज़र अब क्रोमियम को अपने रेंडरिंग इंजन के रूप में उपयोग करता है।
IE 11 के लिए जाँच करना अभी भी दुख की बात है।

यहां एक अधिक सरल दृष्टिकोण है, क्योंकि IE के प्राचीन संस्करणों को चला जाना चाहिए।

if (window.document.documentMode) {
  // Do IE stuff
}

यहाँ मेरा पुराना उत्तर है (2014):

एज में यूजर एजेंट स्ट्रिंग बदल गया है।

/**
 * detect IEEdge
 * returns version of IE/Edge or false, if browser is not a Microsoft browser
 */
function detectIEEdge() {
    var ua = window.navigator.userAgent;

    var msie = ua.indexOf('MSIE ');
    if (msie > 0) {
        // IE 10 or older => return version number
        return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
    }

    var trident = ua.indexOf('Trident/');
    if (trident > 0) {
        // IE 11 => return version number
        var rv = ua.indexOf('rv:');
        return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
    }

    var edge = ua.indexOf('Edge/');
    if (edge > 0) {
       // Edge => return version number
       return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
    }

    // other browser
    return false;
}

नमूना उपयोग:

alert('IEEdge ' + detectIEEdge());

IE 10 का डिफ़ॉल्ट स्ट्रिंग:

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)

IE 11 का डिफ़ॉल्ट स्ट्रिंग:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko 

एज 12 का डिफ़ॉल्ट स्ट्रिंग:

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 

एज 13 का डिफ़ॉल्ट स्ट्रिंग (thx @ डॉक्रॉर्ड):

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 

एज 14 का डिफ़ॉल्ट स्ट्रिंग:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/14.14300 

एज 15 का डिफ़ॉल्ट स्ट्रिंग:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063 

एज 16 का डिफ़ॉल्ट स्ट्रिंग:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299 

एज 17 का डिफ़ॉल्ट स्ट्रिंग:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134 

एज 18 का डिफ़ॉल्ट स्ट्रिंग (इनसाइडर पूर्वावलोकन):

Mozilla/5.0 (Windows NT 10.0; Win64; x64; ServiceUI 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17730 

CodePen में परीक्षण करें:

http://codepen.io/gapcode/pen/vEJNZN


4
टिप्पणी करने के लिए धन्यवाद। मैंने अभी तक आपके उत्तर को सत्यापित नहीं किया है, लेकिन मैं एक बात टिप्पणी करना चाहता हूं: पहली 'यदि' में 'वापसी' शामिल है, तो आपको बाद में 'और' की आवश्यकता नहीं है।
मारियो

30
बस उत्सुक, क्यों वे IE के नए संस्करणों में उपयोगकर्ता एजेंट लाइन को बदलते हैं? एमएस गंभीरता से हमें उनके भयानक वेब ब्राउज़र का पता लगाने के लिए नहीं चाहते हैं।
c00000fd

3
@SameerAlibhai जो सिद्धांत में अच्छा लगता है, लेकिन व्यवहार में, विशेष रूप से वर्तमान में, यह व्यावहारिक नहीं है। कभी-कभी समस्याएँ उत्पन्न होती हैं कि एक एकल "सुविधा" का पता लगाना शामिल नहीं है और कुछ विशिष्ट विशेषताओं में कार्यान्वयन क्वैर हैं जो केवल ब्राउज़र के ज्ञान के साथ काम कर सकते हैं। क्या होगा अगर मैं कुछ सरल करना चाहता हूं जैसे कि ब्राउज़र के आंकड़े इकट्ठा करें?
थोड़ा सा

34
यह ध्यान दिया जाना चाहिए कि एज वास्तव में 'IE12' नहीं है, लेकिन वास्तव में एक पूरी तरह से अलग ब्राउज़र है। Windows 10 IE11 और Edge दोनों के साथ आता है।
मोलको

16
IE के लिए मेरी घृणा बढ़ती है
Kolob Canyon

135

यदि आप सभी जानना चाहते हैं कि क्या ब्राउज़र IE है या नहीं, तो आप यह कर सकते हैं:

var isIE = false;
var ua = window.navigator.userAgent;
var old_ie = ua.indexOf('MSIE ');
var new_ie = ua.indexOf('Trident/');

if ((old_ie > -1) || (new_ie > -1)) {
    isIE = true;
}

if ( isIE ) {
    //IE specific code goes here
}

अद्यतन 1: एक बेहतर तरीका

मैं अब यह सलाह देता हूं। यह अभी भी बहुत पठनीय है और कहीं कम कोड है :)

var ua = window.navigator.userAgent;
var isIE = /MSIE|Trident/.test(ua);

if ( isIE ) {
  //IE specific code goes here
}

छोटे जवाब के लिए टिप्पणियों में JohnnyFun को धन्यवाद :)

अद्यतन 2: सीएसएस में IE के लिए परीक्षण

सबसे पहले, यदि आप कर सकते हैं, तो आपको यह देखने के लिए @supportsजेएस के बजाय बयानों का उपयोग करना चाहिए कि क्या ब्राउज़र एक निश्चित सीएसएस सुविधा का समर्थन करता है।

.element {
  /* styles for all browsers */
}

@supports (display: grid) {
  .element {
    /* styles for browsers that support display: grid */
  }
}

(ध्यान दें कि IE बिल्कुल भी समर्थन नहीं करता है @supportsऔर किसी @supportsबयान के अंदर रखी गई किसी भी शैली की उपेक्षा करेगा ।)

यदि समस्या का समाधान नहीं किया जा सकता है @supportsतो आप ऐसा कर सकते हैं:

// JS

var ua = window.navigator.userAgent;
var isIE = /MSIE|Trident/.test(ua);

if ( isIE ) {
  document.documentElement.classList.add('ie')
}
/* CSS */

.element {
  /* styles that apply everywhere */
}

.ie .element {
  /* styles that only apply in IE */
}

(नोट: classListजेएस के लिए अपेक्षाकृत नया है और मुझे लगता है, IE ब्राउज़रों में से, यह केवल IE11 में काम करता है।

यदि आप अपने प्रोजेक्ट में SCSS (Sass) का उपयोग कर रहे हैं, तो इसे सरल बनाया जा सकता है:

/* SCSS (Sass) */

.element {
  /* styles that apply everywhere */

  .ie & {
    /* styles that only apply in IE */
  }
}

अद्यतन 3: Microsoft एज जोड़ना (अनुशंसित नहीं)

यदि आप भी Microsoft Edge को सूची में जोड़ना चाहते हैं, तो आप निम्न कार्य कर सकते हैं। हालाँकि, मैं इसकी अनुशंसा नहीं करता क्योंकि एज IE की तुलना में अधिक सक्षम ब्राउज़र है।

var ua = window.navigator.userAgent;
var isIE = /MSIE|Trident|Edge\//.test(ua);

if ( isIE ) {
  //IE & Edge specific code goes here
}

5
या कुछ बाइट्स में समान: ms_ie = ~ ua.indexOf ('MSIE') || ~ ua.indexOf ( 'त्रिशूल /'); ;-)
साइमन स्टाइनबर्गर

12
मेरा संस्करण मानव के लिए बहुत अधिक तात्कालिक अर्थ रखता है लेकिन कम बाइट्स हमेशा अच्छा होता है :)
डैनियल टोनन

7
याms_ie = !!ua.match(/MSIE|Trident/)
xori

5
या ms_ie = /MSIEADETrident/.test(ua)
जॉनीफुन

1
@SimonSteinberger ~का कोई महत्व नहीं है?
1.21 गीगावाट

45

trueइंटरनेट एक्सप्लोरर के किसी भी संस्करण के लिए यह रिटर्न :

function isIE(userAgent) {
  userAgent = userAgent || navigator.userAgent;
  return userAgent.indexOf("MSIE ") > -1 || userAgent.indexOf("Trident/") > -1 || userAgent.indexOf("Edge/") > -1;
}

userAgentपैरामीटर वैकल्पिक है और ब्राउज़र की उपयोगकर्ता एजेंट को यह चूक।


यह अच्छा होना चाहिए लेकिन आप मूल रूप से IE ब्राउज़रों के लिए एक डिफ़ॉल्ट "रिटर्न ट्रू" या "रिटर्न 1" मान सेट करना भूल गए। जब IE ब्राउज़रों का पता लगाया जाता है तो यह वर्तमान में कोई मूल्य नहीं लौटाता है।
विंसेंट एडवर्ड गडरिया बिनुआ

10
आप एज को आईई के रूप में क्यों मानना ​​चाहेंगे? अनुकूलता के संदर्भ में, वे आजकल कम ही हैं।
मेराव्यू

@docta_faustus userAgent एक पैरामीटर है, न कि वैश्विक
bendytree

29

एंगुलरजस टीम ऐसा कर रही है ( v 1.6.5 ):

var msie, // holds major version number for IE, or NaN if UA is not IE.

// Support: IE 9-11 only
/**
 * documentMode is an IE-only property
 * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx
 */
msie = window.document.documentMode;

फिर कोड की कई पंक्तियाँ इसे एक संख्या के रूप में उपयोग करने के दौरान बिखरी हुई होती हैं जैसे कि

if (event === 'input' && msie <= 11) return false;

तथा

if (enabled && msie < 8) {

window.document.documentMode MS Edge में अपरिभाषित है
Veselin Vasilev

25
यह MS Edge में अपरिभाषित है क्योंकि MS Edge IE नहीं है!
JCKödel

1
document.documentModeIE8 + द्वारा समर्थित है। यह 'undefined'एज या क्रोम / फायरफॉक्स के लिए होगा ... मैंने इस कोड को var IEver = window.document.documentMode || (window.attachEvent? 1 : 99);इस तरह बदल दिया कि यह IE8 + के लिए सटीक IE संस्करण लौटाता है, गैर-IE ब्राउज़र के लिए 99 (आमतौर पर यह एक आधुनिक ब्राउज़र होगा), और पुराने IE5-7 के लिए 1। यह इस तरह लिखा जाता है क्योंकि हमें आमतौर पर केवल कुछ पुराने IE के लिए विशेष कार्य की आवश्यकता होती है। तो, if (IEver < 9) { ... }इसका मतलब है कि अगर यह एक पुराना IE है
S.Serpooshan

29

आप उपयोगकर्ता-नेविगेटर का पता लगाने के लिए नेविगेटर ऑब्जेक्ट का उपयोग कर सकते हैं, आपको इसके लिए jquery की आवश्यकता नहीं है

<script type="text/javascript">

if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf("Trident/") > -1 ){ 

 // Do stuff with Internet-Exploders ... :)
}

</script>

http://www.javascriptkit.com/javatutors/navigator.shtml


4
यह मुझे मेरे IE11 के लिए असत्य देता है
कर्टिस

2
IE11 का उपयोगकर्ता एजेंट MSIE (XX) से अलग है; IE11 ट्रिडेंट के लिए जाँच द्वारा पाया जाएगा।
Orpheus

यह फ़ायरफ़ॉक्स 45.0.2 में एक झूठी सकारात्मक देता है।
टिम एस। वान हारेन

गलत टेस्ट इंडेक्सऑफ टेस्ट फ़ंक्शन रीजेक्स की तरह सही या गलत नहीं लौटाता है, जो आपने navigator.userAgent.indexOf ("Trident /")! = -1
Dahar Youssef

10

उपरोक्त उत्तरों का उपयोग करना; सरल और गाढ़ा बूलियन लौटना:

var isIE = /(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent);


1
फायरफोक्स में झूठे रिटर्न 44.0.2 विडोज़ पर 10. फायरफॉक्स का कौन सा संस्करण सही है @ SiKni8?
आर्थर हेबर्ट

9

विधि 01:
$ .browser को jQuery के संस्करण 1.3 में हटा दिया गया और 1.9 में हटा दिया गया

if ( $.browser.msie) {
  alert( "Hello! This is IE." );
}

विधि 02:
सशर्त टिप्पणियों का उपयोग करना

<!--[if gte IE 8]>
<p>You're using a recent version of Internet Explorer.</p>
<![endif]-->

<!--[if lt IE 7]>
<p>Hm. You should upgrade your copy of Internet Explorer.</p>
<![endif]-->

<![if !IE]>
<p>You're not using Internet Explorer.</p>
<![endif]>

विधि 03:

 /**
 * Returns the version of Internet Explorer or a -1
 * (indicating the use of another browser).
 */
function getInternetExplorerVersion()
{
    var rv = -1; // Return value assumes failure.

    if (navigator.appName == 'Microsoft Internet Explorer')
    {
        var ua = navigator.userAgent;
        var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat( RegExp.$1 );
    }

    return rv;
}

function checkVersion()
{
    var msg = "You're not using Internet Explorer.";
    var ver = getInternetExplorerVersion();

    if ( ver > -1 )
    {
        if ( ver >= 8.0 ) 
            msg = "You're using a recent copy of Internet Explorer."
        else
            msg = "You should upgrade your copy of Internet Explorer.";
    }

    alert( msg );
}

विधि 04:
जावास्क्रिप्ट / मैनुअल डिटेक्शन का उपयोग करें

/*
     Internet Explorer sniffer code to add class to body tag for IE version.
     Can be removed if your using something like Modernizr.
 */
 var ie = (function ()
 {

     var undef,
     v = 3,
         div = document.createElement('div'),
         all = div.getElementsByTagName('i');

     while (
     div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i>< ![endif]-->',
     all[0]);

     //append class to body for use with browser support
     if (v > 4)
     {
         $('body').addClass('ie' + v);
     }

 }());

संदर्भ लिंक


@ श्रद्धा मैंने उत्तर को अपडेट किया है उम्मीद है कि यह आपके लिए काम करेगा।
आमिर शहजाद

नोट के रूप में: विधि 2 IE10 में या मानक मोड में बेहतर काम नहीं करेगा। अधिक जानकारी के लिए: सशर्त टिप्पणियों का अब समर्थन नहीं किया जाता है
15 '11

@insertusernamehere आप बहुत सही हैं, इसके लिए मुझे लगता है कि .ie10यदि आप केवल 10 के लिए कुछ सीएसएस फिक्स कर रहे हैं तो क्लास का उपयोग सबसे अच्छा विकल्पों में से एक है। इंटरनेट एक्सप्लोरर 10 के रूप में ".ie10"HTML तत्व के लिए वर्ग जोड़ता है <html class="ie10">, तो आप इसे उपयोग कर सकते हैं जैसे.ie10 .myclass {//some css here}
आमिर शहजाद

8

मैं सिर्फ यह देखना चाहता था कि ब्राउज़र IE11 या अधिक पुराना था, क्योंकि ठीक है, वे बकवास कर रहे हैं।

function isCrappyIE() {
    var ua = window.navigator.userAgent;
    var crappyIE = false;
    var msie = ua.indexOf('MSIE ');
    if (msie > 0) {// IE 10 or older => return version number        
        crappyIE = true;
    }
    var trident = ua.indexOf('Trident/');
    if (trident > 0) {// IE 11 => return version number        
        crappyIE = true;
    }
    return crappyIE;
}   

if(!isCrappyIE()){console.table('not a crappy browser);}

2
यह कन्वेंशन मानकों के नामकरण के लिए अपने उच्च संबंध के लिए मेरा वोट प्राप्त करता है
redbandit

7
function detectIE() {
    var ua = window.navigator.userAgent;
    var ie = ua.search(/(MSIE|Trident|Edge)/);

    return ie > -1;
}

सवाल का जवाब नहीं देता। एज आईई नहीं है।
HDA

hda, 2013 से प्रश्न दिनांक, मुझे लगता है कि आज, यह "एज" को नजरअंदाज नहीं करने के लिए दिलचस्प है
बॉस COTIGA

5

आधुनिकीकरण का उपयोग करना

Modernizr.addTest('ie', function () {
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf('MSIE ') > 0;
    var ie11 = ua.indexOf('Trident/') > 0;
    var ie12 = ua.indexOf('Edge/') > 0;
    return msie || ie11 || ie12;
});

इस सवाल का जवाब नहीं है क्योंकि एज IE नहीं है। इसके अलावा एज IE12 नहीं है। जब क्रोमियम-आधारित एज जारी किया जाता है, तो आपको इस सूची में क्रोम या ओपेरा भी जोड़ना चाहिए। (इसके द्वारा आप जो भी हासिल करना चाहते हैं, उसके बाद फ़ायरफ़ॉक्स का पता लगाना आसान होगा)
hda

5

या यह वास्तव में लघु संस्करण, सच है अगर ब्राउज़र इंटरनेट एक्सप्लोरर है:

function isIe() {
    return window.navigator.userAgent.indexOf("MSIE ") > 0
        || !!navigator.userAgent.match(/Trident.*rv\:11\./);
}

4

फिर भी एक और सरल (अभी तक मानव पठनीय) फ़ंक्शन यह पता लगाने के लिए कार्य करता है कि ब्राउज़र IE है या नहीं (एज को अनदेखा कर रहा है, जो बिल्कुल भी बुरा नहीं है):

function isIE() {
  var ua = window.navigator.userAgent;
  var msie = ua.indexOf('MSIE '); // IE 10 or older
  var trident = ua.indexOf('Trident/'); //IE 11

  return (msie > 0 || trident > 0);
}

3

यदि आप useragent का उपयोग नहीं करना चाहते हैं, तो आप यह जाँचने के लिए भी कर सकते हैं कि ब्राउज़र IE है या नहीं। टिप्पणी कोड वास्तव में IE ब्राउज़रों में चलता है और "झूठे" को "सच" में बदल देता है।

var isIE = /*@cc_on!@*/false;
if(isIE){
    //The browser is IE.
}else{
    //The browser is NOT IE.
}   

1
IE11 सशर्त संकलन का समर्थन नहीं करता है
गेब्रियल लामास

मैंने बस यह कोशिश की और यह अभी भी काम कर रहा है। क्या आप वाकई इसका समर्थन नहीं करते हैं?
dev4life

3

मुझे पता है कि यह एक पुराना सवाल है, लेकिन अगर किसी को फिर से यह आता है और IE11 का पता लगाने के साथ समस्या है, तो यहां IE के सभी वर्तमान संस्करणों के लिए एक काम कर समाधान है।

var isIE = false;
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
    isIE = true;   
}

3

मैंने इसका इस्तेमाल किया है

function notIE(){
    var ua = window.navigator.userAgent;
    if (ua.indexOf('Edge/') > 0 || 
        ua.indexOf('Trident/') > 0 || 
        ua.indexOf('MSIE ') > 0){
       return false;
    }else{
        return true;                
    }
}

2

यहाँ कई उत्तर हैं, और मैं अपना इनपुट जोड़ना चाहूंगा। IE 11 फ्लेक्सबॉक्स से संबंधित एक ऐसा गधा था ( यहां इसके सभी मुद्दों और विसंगतियों को देखें ) कि मुझे वास्तव में यह जांचने के लिए एक आसान तरीका की आवश्यकता है कि क्या कोई उपयोगकर्ता किसी भी IE ब्राउज़र (11 तक और सहित) का उपयोग कर रहा है, लेकिन एज को छोड़कर, क्योंकि एज वास्तव में है बहुत अच्छा।

यहां दिए गए उत्तरों के आधार पर, मैंने एक साधारण फ़ंक्शन लिखकर एक वैश्विक बूलियन वैरिएबल लौटाया, जिसे आप फिर लाइन का उपयोग कर सकते हैं। IE के लिए जाँच करना बहुत आसान है।

var isIE;
(function() {
    var ua = window.navigator.userAgent,
        msie = ua.indexOf('MSIE '),
        trident = ua.indexOf('Trident/');

    isIE = (msie > -1 || trident > -1) ? true : false;
})();

if (isIE) {
    alert("I am an Internet Explorer!");
}

इस तरह से आपको केवल एक बार लुक अप करना होगा, और आप परिणाम को किसी फ़ंक्शन कॉल पर लाने के बजाय एक चर में संग्रहीत करते हैं। (जहां तक ​​मुझे पता है कि आपको इस कोड को निष्पादित करने के लिए तैयार दस्तावेज़ का इंतजार करने की आवश्यकता नहीं है क्योंकि उपयोगकर्ता-एजेंट DOM से संबंधित नहीं है।)


2

आप उपयोग कर रहे हैं इस प्रयास करें jQuery संस्करण> = 1.9 ,

var browser;
jQuery.uaMatch = function (ua) {
    ua = ua.toLowerCase();

    var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
        /(webkit)[ \/]([\w.]+)/.exec(ua) ||
        /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
        /(msie) ([\w.]+)/.exec(ua) || 
        ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
       /(Trident)[\/]([\w.]+)/.exec(ua) || [];

    return {
        browser: match[1] || "",
        version: match[2] || "0"
    };
};
// Don't clobber any existing jQuery.browser in case it's different
if (!jQuery.browser) {
    matched = jQuery.uaMatch(navigator.userAgent);
    browser = {};

    if (matched.browser) {
        browser[matched.browser] = true;
        browser.version = matched.version;
    }

    // Chrome is Webkit, but Webkit is also Safari.
    if (browser.chrome) {
        browser.webkit = true;
    } else if (browser.webkit) {
        browser.safari = true;
    }

    jQuery.browser = browser;
}

यदि jQuery संस्करण का उपयोग कर रहे हैं <1.9 ($ .browser को jQuery 1.9 में हटा दिया गया था) तो इसके बजाय निम्नलिखित कोड का उपयोग करें:

$('.myClass').on('click', function (event) {
    if ($.browser.msie) {
        alert($.browser.version);
    }
});

इसके लिए धन्यवाद। दुर्भाग्य से हम अभी भी संस्करण 1.7.2 पर हैं और अभी तक इसे बदल नहीं सकते हैं।
user2571510

जहां तक ​​मैं देख सकता हूं, यह नए IE को ध्यान में नहीं रखता है, जो ट्रिडेंट इंजन पर आधारित हैं।
ब्रैम वनरॉय

ट्राइडेंट पर आधारित नवीनतम IE के लिए अपडेट किया गया
रोहन कुमार

1

@ स्पाइडरकोड का समाधान IE 11 के साथ काम नहीं करता है। यहां सबसे अच्छा समाधान है जो मैंने अपने कोड में उपयोग किया है जहां मुझे विशेष सुविधा के लिए ब्राउज़र का पता लगाने की आवश्यकता है।

IE11 अब MSIE के रूप में रिपोर्ट नहीं करता है, परिवर्तनों की इस सूची के अनुसार, यह गलत पहचान से बचने के लिए जानबूझकर है।

यदि आप वास्तव में यह जानना चाहते हैं कि आप क्या कर सकते हैं तो यह IE है उपयोगकर्ता एजेंट में त्रिशूल / स्ट्रिंग का पता लगाने के लिए यदि नेविगेटर.नैपनाम ने नेटस्केप, कुछ इस तरह (अप्राप्त) लौटाता है;

इस उत्तर के लिए धन्यवाद

function isIE()
{
  var rv = -1;
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  else if (navigator.appName == 'Netscape')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv == -1 ? false: true;
}

1

नीचे मैंने गॉगल करते हुए ऐसा करने का सुरुचिपूर्ण तरीका पाया ---

/ detect IE
var IEversion = detectIE();

if (IEversion !== false) {
  document.getElementById('result').innerHTML = 'IE ' + IEversion;
} else {
  document.getElementById('result').innerHTML = 'NOT IE';
}

// add details to debug result
document.getElementById('details').innerHTML = window.navigator.userAgent;

/**
 * detect IE
 * returns version of IE or false, if browser is not Internet Explorer
 */
function detectIE() {
  var ua = window.navigator.userAgent;

  // Test values; Uncomment to check result …

  // IE 10
  // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';

  // IE 11
  // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';

  // IE 12 / Spartan
  // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';

  // Edge (IE 12+)
  // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';

  var msie = ua.indexOf('MSIE ');
  if (msie > 0) {
    // IE 10 or older => return version number
    return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
  }

  var trident = ua.indexOf('Trident/');
  if (trident > 0) {
    // IE 11 => return version number
    var rv = ua.indexOf('rv:');
    return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
  }

  var edge = ua.indexOf('Edge/');
  if (edge > 0) {
    // Edge (IE 12+) => return version number
    return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
  }

  // other browser
  return false;
}

1
यह कोडपेन में मेरी कलम से ठीक वही कोड है , जो इस प्रश्न के मेरे उत्तर का हिस्सा है । ;-)
मारियो

1
हां, मैंने उसी का उपयोग किया, लेकिन स्टैक-ओवरफ्लो लोग लिंक साझा नहीं करना चाहते हैं। यहाँ संदर्भ में लिंक अपडेट करेगा। महान काम मारियो के लिए धन्यवाद।
रामेश्वर वायेवारे

1

स्पाइडरकोड के जवाब को उन मुद्दों को ठीक करने के लिए अपडेट करें जहां स्ट्रिंग 'MSIE' -1 देता है, लेकिन यह 'ट्रिडेंट' से मेल खाता है। यह नान को वापस करता था, लेकिन अब IE के संस्करण के लिए 11 लौटाता है।

   function msieversion() {
       var ua = window.navigator.userAgent;
       var msie = ua.indexOf("MSIE ");
       if (msie > -1) {
           return ua.substring(msie + 5, ua.indexOf(".", msie));
       } else if (navigator.userAgent.match(/Trident.*rv\:11\./)) {
           return 11;
       } else {
           return false;
       }
    }

0

आप सभी इंटरनेट एक्सप्लोरर (अंतिम संस्करण का परीक्षण किया गया 12) को देख सकते हैं।

<script>
    var $userAgent = '';
    if(/MSIE/i['test'](navigator['userAgent'])==true||/rv/i['test'](navigator['userAgent'])==true||/Edge/i['test'](navigator['userAgent'])==true){
       $userAgent='ie';
    } else {
       $userAgent='other';
    }

    alert($userAgent);
</script>

यहां देखें https://jsfiddle.net/v7npeLwe/


0
function msieversion() {
var ua = window.navigator.userAgent;
console.log(ua);
var msie = ua.indexOf("MSIE ");

if (msie > -1 || navigator.userAgent.match(/Trident.*rv:11\./)) { 
    // If Internet Explorer, return version numbe
    // You can do what you want only in IE in here.
    var version_number=parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)));
    if (isNaN(version_number)) {
        var rv_index=ua.indexOf("rv:");
        version_number=parseInt(ua.substring(rv_index+3,ua.indexOf(".",rv_index)));
    }
    console.log(version_number);
} else {       
    //other browser   
    console.log('otherbrowser');
}
}

आपको परिणाम को कंसोल में देखना चाहिए, कृपया क्रोम निरीक्षण का उपयोग करें।


0

मैंने इस कोड को दस्तावेज़ तैयार फ़ंक्शन में रखा है और यह केवल इंटरनेट एक्सप्लोरर में चलाता है। इंटरनेट एक्सप्लोरर 11 में परीक्षण किया गया।

var ua = window.navigator.userAgent;
ms_ie = /MSIE|Trident/.test(ua);
if ( ms_ie ) {
    //Do internet explorer exclusive behaviour here
}

0

यह केवल IE 11 संस्करण के नीचे काम करता है।

var ie_version = parseInt(window.navigator.userAgent.substring(window.navigator.userAgent.indexOf("MSIE ") + 5, window.navigator.userAgent.indexOf(".", window.navigator.userAgent.indexOf("MSIE "))));

console.log("version number",ie_version);


0

इंटरनेट एक्सप्लोरर या एज के संस्करण का पता लगाने के लिए जावास्क्रिप्ट कार्य करता है

function ieVersion(uaString) {
  uaString = uaString || navigator.userAgent;
  var match = /\b(MSIE |Trident.*?rv:|Edge\/)(\d+)/.exec(uaString);
  if (match) return parseInt(match[2])
}

0

Necromancing।

उपयोगकर्ता-एजेंट स्ट्रिंग पर निर्भर न होने के लिए, बस कुछ गुणों की जाँच करें:

if (document.documentMode) 
{
    console.log('Hello Microsoft IE User!');
}

if (!document.documentMode && window.msWriteProfilerMark) {
    console.log('Hello Microsoft Edge User!');
}

if (document.documentMode || window.msWriteProfilerMark) 
{
    console.log('Hello Microsoft User!');
}

if (window.msWriteProfilerMark) 
{
    console.log('Hello Microsoft User in fewer characters!');
}

इसके अलावा, यह नए Chredge (Anaheim) का पता लगाता है:

function isEdg()
{ 

    for (var i = 0, u="Microsoft", l =u.length; i < navigator.plugins.length; i++)
    {
        if (navigator.plugins[i].name != null && navigator.plugins[i].name.substr(0, l) === u)
            return true;
    }

    return false;
}

और यह क्रोमियम का पता लगाता है:

function isChromium()
{ 

    for (var i = 0, u="Chromium", l =u.length; i < navigator.plugins.length; i++)
    {
        if (navigator.plugins[i].name != null && navigator.plugins[i].name.substr(0, l) === u)
            return true;
    }

    return false;
}

और यह सफारी:

if(window.safari)
{
    console.log("Safari, yeah!");
}

-1

ऐसा करके देखें

if ($.browser.msie && $.browser.version == 8) {
    //my stuff

}

jQuery ने इसे 1.3 में चित्रित किया और 1.9 में पूरी तरह से हटा दिया।
geca

-1

मुझे लगता है कि यह तुम्हारी मदद करेगा यहाँ

function checkIsIE() {
    var isIE = false;
    if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
        isIE = true;
    }
    if (isIE)  // If Internet Explorer, return version number
    {
        kendo.ui.Window.fn._keydown = function (originalFn) {
            var KEY_ESC = 27;
            return function (e) {
                if (e.which !== KEY_ESC) {
                    originalFn.call(this, e);
                }
            };
        }(kendo.ui.Window.fn._keydown);

        var windowBrowser = $("#windowBrowser").kendoWindow({
            modal: true,
            id: 'dialogBrowser',
            visible: false,
            width: "40%",
            title: "Thông báo",
            scrollable: false,
            resizable: false,
            deactivate: false,
            position: {
                top: 100,
                left: '30%'
            }
        }).data('kendoWindow');
        var html = '<br /><div style="width:100%;text-align:center"><p style="color:red;font-weight:bold">Please use the browser below to use the tool</p>';
        html += '<img src="/Scripts/IPTVClearFeePackage_Box/Images/firefox.png"/>';
        html += ' <img src="/Scripts/IPTVClearFeePackage_Box/Images/chrome.png" />';
        html += ' <img src="/Scripts/IPTVClearFeePackage_Box/Images/opera.png" />';
        html += '<hr /><form><input type="button" class="btn btn-danger" value="Đóng trình duyệt" onclick="window.close()"></form><div>';
        windowBrowser.content(html);
        windowBrowser.open();

        $("#windowBrowser").parent().find(".k-window-titlebar").remove();
    }
    else  // If another browser, return 0
    {
        return false;
    }
}

-3

आप $.browserनाम, विक्रेता और संस्करण जानकारी प्राप्त करने के लिए उपयोग कर सकते हैं ।

Http://api.jquery.com/jQuery.browser/ देखें


7
"यह संपत्ति jQuery 1.9 में हटा दी गई थी और केवल jQuery.migrate प्लगइन के माध्यम से उपलब्ध है।"
रेनो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.