Ich rufe eine Funktion wie die folgende auf, indem ich auf divs mit einer bestimmten Klasse klicke.
Gibt es eine Möglichkeit, beim Starten der Funktion zu überprüfen, ob ein Benutzer Internet Explorer verwendet, und sie abzubrechen / abzubrechen, wenn er andere Browser verwendet, sodass sie nur für IE-Benutzer ausgeführt wird? Die Benutzer hier würden alle auf IE8 oder höheren Versionen sein, so dass ich IE7 und niedrigere Versionen nicht abdecken müsste.
Wenn ich sagen könnte, welchen Browser sie verwenden, wäre das großartig, aber nicht erforderlich.
Beispielfunktion:
$('.myClass').on('click', function(event)
{
// my function
});
javascript
jquery
internet-explorer
browser-detection
user2571510
quelle
quelle
With modern web development, it's bad practice to support non-Chromium-based browsers (with Safari not considered to be Chromium-based at all)
. Sorry, aber dieser Wahnsinn muss irgendwann und irgendwieAntworten:
Verwenden Sie die folgende JavaScript-Methode:
Die Details finden Sie auf der folgenden Microsoft-Support-Website:
So bestimmen Sie die Browserversion anhand des Skripts
Update: (IE 11-Unterstützung)
quelle
if (msie > 0)
irreführend. Wenn der Wert nicht gefunden wird, gibt die Funktion indexOf () -1 und nicht 0 zurück. Diesif (msie > -1)
wäre daher erklärender.IE 11
: stackoverflow.com/a/21712356/114029/Edge\/|Trident\/|MSIE /.test(window.navigator.userAgent)
Ich weiß, dass dies auf 10 und 11 funktioniert. Wenn Sie <IE9 und Edge überprüfen können, bearbeiten Sie die Antwort.Es ist einige Jahre später und der Edge-Browser verwendet jetzt Chromium als Rendering-Engine.
Nach IE 11 zu suchen ist leider immer noch eine Sache.
Hier ist ein einfacher Ansatz, da alte Versionen von IE weg sein sollten.
Hier ist meine alte Antwort (2014):
In Edge hat sich die User Agent-Zeichenfolge geändert.
Beispielnutzung:
Standardzeichenfolge von IE 10:
Standardzeichenfolge von IE 11:
Standardzeichenfolge von Edge 12:
Standardzeichenfolge von Edge 13 (thx @DrCord):
Standardzeichenfolge von Edge 14:
Standardzeichenfolge von Edge 15:
Standardzeichenfolge von Edge 16:
Standardzeichenfolge von Edge 17:
Standardzeichenfolge von Edge 18 (Insider-Vorschau):
Test bei CodePen:
http://codepen.io/gapcode/pen/vEJNZN
quelle
Wenn Sie nur wissen möchten, ob der Browser IE ist oder nicht, können Sie Folgendes tun:
Update 1: Eine bessere Methode
Ich empfehle das jetzt. Es ist immer noch sehr gut lesbar und ist weit weniger Code :)
Danke an JohnnyFun in den Kommentaren für die verkürzte Antwort :)
Update 2: Testen auf IE in CSS
Wenn Sie können, sollten Sie zunächst
@supports
Anweisungen anstelle von JS verwenden, um zu überprüfen, ob ein Browser eine bestimmte CSS-Funktion unterstützt.(Beachten Sie, dass der IE überhaupt keine Unterstützung unterstützt
@supports
und alle in einer@supports
Anweisung platzierten Stile ignoriert .)Wenn das Problem mit nicht behoben werden
@supports
kann, können Sie Folgendes tun:(Hinweis:
classList
ist für JS relativ neu und ich denke, von den IE-Browsern funktioniert es nur in IE11. Möglicherweise auch in IE10.)Wenn Sie SCSS (Sass) in Ihrem Projekt verwenden, kann dies vereinfacht werden, um:
Update 3: Hinzufügen von Microsoft Edge (nicht empfohlen)
Wenn Sie auch Microsoft Edge zur Liste hinzufügen möchten, können Sie Folgendes tun. Allerdings empfehle ich es nicht als Edge ein viel kompetenteren Browser als IE ist.
quelle
ms_ie = !!ua.match(/MSIE|Trident/)
~
irgendeine Bedeutung?Dies gibt
true
für jede Version von Internet Explorer zurück:Der
userAgent
Parameter ist optional und standardmäßig der Benutzeragent des Browsers.quelle
So macht es das Angularjs-Team ( v 1.6.5 ):
Dann gibt es mehrere Codezeilen, die überall verteilt sind und diese als Zahl verwenden, wie z
und
quelle
document.documentMode
wird von IE8 + unterstützt. Es wird'undefined'
für Edge oder Chrome / FireFox sein .... Ich habe diesen Codevar IEver = window.document.documentMode || (window.attachEvent? 1 : 99);
so geändert, dass er die genaue IE-Version für IE8 +, 99 für Nicht-IE-Browser (normalerweise ist es ein moderner Browser) und 1 für den alten IE5-7 zurückgibt. Dies ist so geschrieben, weil wir normalerweise spezielle Arbeit nur für einige ältere IE benötigen. Also,if (IEver < 9) { ... }
bedeutet, wenn es ein alter IE istSie können das Navigator-Objekt verwenden, um den Benutzer-Navigator zu erkennen. Sie benötigen dafür keine Abfrage
http://www.javascriptkit.com/javatutors/navigator.shtml
quelle
Verwenden Sie die obigen Antworten; einfache & komprimierte Rückgabe Boolean:
var isIE = /(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent);
quelle
Methode 01:
$ .browser wurde in jQuery Version 1.3 veraltet und in 1.9 entfernt
Methode 02:
Verwenden von bedingten Kommentaren
Methode 03:
Methode 04:
Verwenden Sie JavaScript / Manuelle Erkennung
Referenzlink
quelle
.ie10
Klasse eine der besten Optionen ist, wenn Sie eine CSS-Korrektur nur für ie10 durchführen. Wenn der Internet Explorer 10".ie10"
dem HTML-Element eine Klasse hinzufügt<html class="ie10">
, können Sie sie wie.ie10 .myclass {//some css here}
Ich wollte nur überprüfen, ob der Browser IE11 oder älter war, weil sie Mist sind.
quelle
quelle
Mit modernizr
quelle
Oder diese wirklich kurze Version gibt true zurück, wenn der Browser Internet Explorer ist:
quelle
Noch eine einfache (aber für Menschen lesbare) Funktion, um festzustellen, ob der Browser IE ist oder nicht (Edge wird ignoriert, was überhaupt nicht schlecht ist):
quelle
Wenn Sie den Benutzeragenten nicht verwenden möchten, können Sie dies auch tun, um zu überprüfen, ob der Browser IE ist. Der kommentierte Code wird tatsächlich in IE-Browsern ausgeführt und wandelt "false" in "true" um.
quelle
Ich weiß, dass dies eine alte Frage ist, aber falls jemand erneut darauf stößt und Probleme mit der Erkennung von IE11 hat, finden Sie hier eine funktionierende Lösung für alle aktuellen Versionen von IE.
quelle
Ich habe das benutzt
quelle
Viele Antworten hier, und ich möchte meine Eingabe hinzufügen. IE 11 war so ein Arsch in Bezug auf Flexbox (siehe alle seine Probleme und Inkonsistenzen hier ), dass ich wirklich eine einfache Möglichkeit brauchte, um zu überprüfen, ob ein Benutzer einen IE-Browser (bis einschließlich 11) verwendet, aber Edge ausschließt, weil Edge es tatsächlich ist sehr schön.
Basierend auf den hier gegebenen Antworten habe ich eine einfache Funktion geschrieben, die eine globale boolesche Variable zurückgibt, die Sie dann später verwenden können. Es ist sehr einfach, nach IE zu suchen.
Auf diese Weise müssen Sie die Suche nur einmal durchführen und das Ergebnis in einer Variablen speichern, anstatt das Ergebnis bei jedem Funktionsaufruf abrufen zu müssen. (Soweit ich weiß, müssen Sie nicht einmal auf ein Dokument warten, das zur Ausführung dieses Codes bereit ist, da der Benutzeragent nicht mit dem DOM verbunden ist.)
quelle
Versuchen Sie dies, wenn Sie jquery version> = 1.9 verwenden .
Wenn Sie jQuery Version <1.9 verwenden ($ .browser wurde in jQuery 1.9 entfernt), verwenden Sie stattdessen den folgenden Code:
quelle
Die Lösung von @ SpiderCode funktioniert nicht mit IE 11. Hier ist die beste Lösung, die ich fortan in meinem Code verwendet habe, wo ich für eine bestimmte Funktion eine Browsererkennung benötige.
IE11 meldet nicht mehr als MSIE. Gemäß dieser Liste von Änderungen ist es beabsichtigt, eine Fehlerkennung zu vermeiden.
Wenn Sie wirklich wissen möchten, dass es sich um einen IE handelt, können Sie den Dreizack / die Zeichenfolge im Benutzeragenten erkennen, wenn navigator.appName Netscape zurückgibt, etwa (den nicht getesteten);
Dank dieser Antwort
quelle
Unten habe ich einen eleganten Weg gefunden, dies beim Googeln zu tun ---
quelle
Aktualisieren Sie die Antwort von SpiderCode, um Probleme zu beheben, bei denen die Zeichenfolge 'MSIE' -1 zurückgibt, aber mit 'Trident' übereinstimmt. Früher wurde NAN zurückgegeben, jetzt wird für diese Version von IE 11 zurückgegeben.
quelle
Sie können alle Internet Explorer (Letzte getestete Version 12) erkennen.
Siehe hier https://jsfiddle.net/v7npeLwe/
quelle
Sie sollten das Ergebnis in der Konsole sehen, bitte verwenden Sie Chrome Inspect.
quelle
Ich habe diesen Code in die Dokumentbereitschaftsfunktion eingefügt und er wird nur im Internet Explorer ausgelöst. In Internet Explorer 11 getestet.
quelle
Dies funktioniert nur unter der IE 11-Version.
console.log("version number",ie_version);
quelle
JavaScript-Funktion zum Erkennen der Version von Internet Explorer oder Edge
quelle
Nekromantie.
Um nicht von der Benutzeragentenzeichenfolge abhängig zu sein, überprüfen Sie einfach einige Eigenschaften:
Dies erkennt auch den neuen Chredge (Anaheim):
Und das erkennt Chrom:
Und diese Safari:
quelle
Versuchen Sie es so
quelle
Ich denke es wird dir hier helfen
quelle
Sie können
$.browser
Informationen zu Name, Hersteller und Version abrufen.Siehe http://api.jquery.com/jQuery.browser/
quelle