Maison  >  Article  >  interface Web  >  Comment résoudre l’incompatibilité getElementsByClassName() dans IE6-8 ?

Comment résoudre l’incompatibilité getElementsByClassName() dans IE6-8 ?

DDD
DDDoriginal
2024-10-22 07:34:02680parcourir

How to Resolve getElementsByClassName() Incompatibility in IE6-8?

Incompatibilité IE6-8 avec la méthode getElementsByClassName()

Lors de la tentative d'utilisation de getElementsByClassName() pour sélectionner des éléments par leur nom de classe dans Internet Explorer 6, 7 ou 8 , vous pouvez rencontrer le message d'erreur « L'objet ne prend pas en charge cette méthode ». En effet, ces anciens navigateurs ne prennent pas en charge cette méthode DOM moderne.

Surmonter le problème de compatibilité

Pour surmonter cette limitation et activer la sélection basée sur les classes dans ces navigateurs, envisagez d'implémenter une solution personnalisée. L'extrait ci-dessous fournit une fonction JavaScript qui reproduit la fonctionnalité de getElementsByClassName() :

document.getElementsByClassName = function(cl) {
  var retnode = [];
  var elem = this.getElementsByTagName('*');
  for (var i = 0; i < elem.length; i++) {
    if((' ' + elem[i].className + ' ').indexOf(' ' + cl + ' ') > -1) retnode.push(elem[i]);
  }
  return retnode;
};

Après avoir ajouté ce code à votre page Web, vous pouvez utiliser document.getElementsByClassName() comme d'habitude pour récupérer les éléments par classe. noms dans IE6, IE7 et IE8.

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