Maison >interface Web >js tutoriel >Comment puis-je faire fonctionner Array.indexOf() dans Internet Explorer ?

Comment puis-je faire fonctionner Array.indexOf() dans Internet Explorer ?

DDD
DDDoriginal
2024-11-24 09:07:091017parcourir

How Can I Make Array.indexOf() Work in Internet Explorer?

Correction de la compatibilité Array.indexOf() pour les navigateurs Internet Explorer

Malgré l'adoption généralisée de JavaScript, les navigateurs Internet Explorer ne disposent pas des fonctionnalités natives de Array.prototype.indexOf() pour détecter les occurrences d'objets dans les tableaux. Pour résoudre ce problème, vous pouvez étendre le prototype Array avec l'extrait suivant sur votre page :

Array.prototype.indexOf = function(obj, start) {
     for (var i = (start || 0), j = this.length; i < j; i++) {
         if (this[i] === obj) { return i; }
     }
     return -1;
}

Lors de la mise en œuvre de ce correctif, tenez compte des conseils suivants :

  • Vérifier l'existence du prototype : Avant d'étendre le prototype Array, vérifiez si la fonction indexOf() existe déjà en vérifiant l'existence de Array.prototype.indexOf. S'il manque, implémentez la fonction.

Évitez la détection du navigateur : L'utilisation d'un code de détection de navigateur tel que "if (browser == IE Style Browser)" est généralement déconseillée car elle n'est pas fiable et peut conduire à un comportement inattendu.

Préférez plutôt la recommandation suivante de Mozilla Developer Network (MDC) :

if (!Array.prototype.indexOf) {

}

Cette approche garantit la compatibilité sans nécessiter de vérifications spécifiques au navigateur. Il est recommandé de toujours privilégier les solutions multi-navigateurs plutôt que celles dépendant du 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