Maison > interface Web > js tutoriel > 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
Libérer: 2024-11-06 14:54:02
original
905 Les gens l'ont consulté

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
}
Copier après la connexion

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 { ... }
Copier après la connexion
  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]-->
    Copier après la connexion
    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
    }
    Copier après la connexion

    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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal