Compatibilité de document.getElementsByClassName avec Internet Explorer
La méthode document.getElementsByClassName fournit un moyen pratique de récupérer des éléments avec une classe spécifique. Cependant, il est confronté à des problèmes de compatibilité avec Internet Explorer (IE).
Solution de Jonathan Snook
Une approche courante pour résoudre ce problème consiste à utiliser la fonction personnalisée de Jonathan Snook, getElementsByClassName. . Cette fonction utilise une expression régulière pour rechercher des éléments avec le nom de classe souhaité.
Cependant, IE peut toujours rencontrer une erreur avec cette solution en raison d'un appel incorrect. La fonction doit être invoquée comme suit :
function getElementsByClassName(node, classname) {...} tabs = getElementsByClassName(document.body, 'tab');
Au lieu de :
document.getElementsByClassName(document.body, 'tab');
Autres options compatibles
Si prise en charge d'IE8 et supérieur est suffisant, vous pouvez implémenter le polyfill suivant pour document.getElementsByClassName :
if (!document.getElementsByClassName) { document.getElementsByClassName = function (className) { return this.querySelectorAll('.' + className); }; Element.prototype.getElementsByClassName = document.getElementsByClassName; } tabs = document.getElementsByClassName('tab');
Conclusion
En ajustant l'invocation de la fonction de Jonathan Snook ou en utilisant le polyfill fourni, vous pouvez surmonter les problèmes de compatibilité avec document.getElementsByClassName dans IE.
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!