Heim >Web-Frontend >js-Tutorial >Ist die Verwendung von „navigator.appName' und „navigator.appVersion' für die Erkennung älterer IE-Versionen zuverlässig?

Ist die Verwendung von „navigator.appName' und „navigator.appVersion' für die Erkennung älterer IE-Versionen zuverlässig?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 14:54:02913Durchsuche

Is Using `navigator.appName` and `navigator.appVersion` Reliable for Detecting Older IE Versions?

IE-Version (vor Version 9) in JavaScript erkennen

Erkennungskriterien und vorgeschlagener Code

Um festzustellen, ob ein Benutzer mit einer Version von Internet Explorer vor Version 9 auf eine Website zugreift, nutzt der vorgeschlagene Code die Eigenschaften navigator.appName und navigator.appVersion.

if (navigator.appName.indexOf("Internet Explorer") != -1) {
    // User is using IE
    // Check for IE version < 9
}

Funktioniert dieser Code? der Trick?

Obwohl die Bedenken hinsichtlich des User-Agent-String-Spoofings und der Funktionsunterstützungserkennung berücksichtigt werden, weist der vorgeschlagene Code mehrere Einschränkungen auf:

  • Bedingte Anweisungen: Bedingte Anweisungen sind zwar nützlich, um auf verschiedene IE-Versionen abzuzielen, werden jedoch nur in IE5-9 unterstützt, sodass dieser Ansatz in modernen Browsern veraltet ist.
  • Präzision (IE 1 und IE 10): Der Code erkennt IE 1 und IE-Versionen größer oder gleich 10 nicht.
  • Vollständigkeit: Der Code prüft nur auf IE-Versionen unter 9 und ignoriert potenzielle Randfälle.

Eine bevorzugte Alternative

Um diese Einschränkungen zu überwinden, umfasst ein umfassenderer Ansatz die Verwendung der CSS-klassenbasierten Erkennung:

  1. Definieren CSS-Klassen, die verschiedene IE-Versionen darstellen, z. B.:
html.lt-ie9 { ... }
html.lt-ie8 { ... }
html.lt-ie7 { ... }
  1. Wenden Sie diese Klassen auf die Element basierend auf der erkannten IE-Version:
    <!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
    <!--[if IE 7]>    <html class="lt-ie9 lt-ie8"> <![endif]-->
    <!--[if IE 8]>    <html class="lt-ie9"> <![endif]-->
    <!--[if gt IE 8]><!--> <html> <!--<![endif]-->
    1. Verwenden Sie CSS, um für die erkannte IE-Version spezifische Stile anzugeben, oder implementieren Sie JavaScript-Logik basierend auf der zugewiesenen Klasse:
    if ($('html').is('.lt-ie7, .lt-ie8, .lt-ie9')) {
        // IE version < 9
    } else {
        // Other browsers
    }

    Diese Methode bietet mehr Flexibilität, Kompatibilität und Kontrolle für den Umgang mit verschiedenen Browserversionen.

    Das obige ist der detaillierte Inhalt vonIst die Verwendung von „navigator.appName' und „navigator.appVersion' für die Erkennung älterer IE-Versionen zuverlässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn