Maison  >  Article  >  interface Web  >  L'utilisation de « navigateur.appName » et « navigateur.appVersion » est-elle fiable pour détecter les anciennes versions d'IE ?

L'utilisation de « navigateur.appName » et « navigateur.appVersion » est-elle fiable pour détecter les anciennes versions d'IE ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-06 14:54:02834parcourir

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

Détecter la version d'IE (antérieure à la v9) en JavaScript

Critères de détection et code proposé

Pour déterminer si un utilisateur accède à un site Web à l'aide d'une version d'Internet Explorer antérieure à la v9, le code proposé exploite les propriétés navigator.appName et navigator.appVersion.

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

Ce code fera-t-il l'affaire l'astuce ?

Bien qu'il réponde aux préoccupations soulevées concernant l'usurpation de chaîne de l'agent utilisateur et la détection de la prise en charge des fonctionnalités, le code proposé présente plusieurs limites :

  • Déclarations conditionnelles : Bien que les instructions conditionnelles soient utiles pour cibler différentes versions d'IE, elles ne sont prises en charge que dans IE5-9, cette approche est donc obsolète dans les navigateurs modernes.
  • Précision (IE 1 et IE 10) : Le code ne parvient pas à détecter les versions d'IE 1 et IE supérieures ou égales à 10.
  • Exhaustivité : Le code vérifie uniquement les versions d'IE inférieures à 9, en ignorant les cas limites potentiels.

Une alternative privilégiée

Pour surmonter ces limitations, une approche plus complète consiste à utiliser la détection basée sur les classes CSS :

  1. Définir Classes CSS qui représentent différentes versions d'IE, par exemple :
html.lt-ie9 { ... }
html.lt-ie8 { ... }
html.lt-ie7 { ... }
  1. Appliquez ces classes au élément basé sur la version d'IE détectée :
    <!--[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. Utilisez CSS pour spécifier des styles spécifiques à la version d'IE détectée, ou implémentez une logique JavaScript basée sur la classe attribuée :
    if ($('html').is('.lt-ie7, .lt-ie8, .lt-ie9')) {
        // IE version < 9
    } else {
        // Other browsers
    }

    Cette méthode offre plus de flexibilité, de compatibilité et de contrôle pour gérer différentes versions de navigateur.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn