489 Stimmen

Überprüfen, ob der Benutzer IE verwendet

Ich rufe eine Funktion wie die folgende auf, indem ich auf Divs mit einer bestimmten Klasse klicke.

Gibt es eine Möglichkeit zu überprüfen, wenn die Funktion gestartet wird, ob ein Benutzer Internet Explorer verwendet und sie abzubrechen / abzubrechen, wenn sie andere Browser verwenden, sodass sie nur für IE-Benutzer ausgeführt wird? Die Benutzer hier wären alle auf IE8 oder höheren Versionen, sodass ich IE7 und ältere Versionen nicht abdecken müsste.

Wenn ich sagen könnte, welchen Browser sie verwenden, wäre das großartig, aber nicht erforderlich.

Beispiel Funktion:

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

8voto

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

    return ie > -1;
}

6voto

kevnk Punkte 18106

Mit modernizr verwenden

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;
});

6voto

Floris Punkte 2259

Oder diese wirklich kurze Version, gibt true zurück, wenn der Browser Internet Explorer ist:

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

5voto

Rohan Kumar Punkte 39768

Bitte versuchen Sie dies, wenn Sie jquery version >=1.9 verwenden,

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"
    };
};
// Keinen bestehenden jQuery.browser überschreiben, falls dieser anders ist
if (!jQuery.browser) {
    matched = jQuery.uaMatch(navigator.userAgent);
    browser = {};

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

    // Chrome ist Webkit, aber Webkit ist auch Safari.
    if (browser.chrome) {
        browser.webkit = true;
    } else if (browser.webkit) {
        browser.safari = true;
    }

    jQuery.browser = browser;
}

Wenn Sie jQuery-Version <1.9 verwenden ($.browser wurde in jQuery 1.9 entfernt), verwenden Sie stattdessen den folgenden Code:

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

5voto

Chuck Le Butt Punkte 45635

Noch eine einfache (aber leicht lesbare) Funktion zur Erkennung, ob der Browser IE ist oder nicht (ohne Edge zu beachten, der gar nicht schlecht ist):

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

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X