Maison > interface Web > js tutoriel > Pourquoi indexOf ne fonctionne-t-il pas correctement avec les tableaux dans IE8 ?

Pourquoi indexOf ne fonctionne-t-il pas correctement avec les tableaux dans IE8 ?

Susan Sarandon
Libérer: 2024-12-07 11:05:14
original
468 Les gens l'ont consulté

Why Doesn't indexOf Work Correctly with Arrays in IE8?

Anomalie de fonction indexOf dans IE8 pour les objets de tableau

La fonction JavaScript fournie, conçue pour valider les extensions de fichiers, rencontre un problème spécifiquement dans IE8 lors l'exécution de l'instruction if ( Allowed.indexOf(ext[1]) == -1). Cet échec soulève la question de savoir pourquoi la fonction indexOf ne s'exécute pas correctement dans IE8.

La fonction indexOf, une méthode native dans les tableaux JavaScript, renvoie l'index de la première occurrence d'un élément spécifié dans le tableau. Cependant, dans les versions antérieures à IE9 d'Internet Explorer, cette fonction n'était pas définie pour les tableaux. Par conséquent, tenter d'utiliser indexOf sur un tableau dans IE8 déclenche l'erreur.

Solution

Pour résoudre cet écart, un polyfill peut être utilisé avant d'utiliser indexOf fonction. Un polyfill est un extrait de code qui garantit la compatibilité avec les anciennes versions du navigateur. Dans ce cas, le polyfill pour Array.prototype.indexOf peut être implémenté comme suit :

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(elt, from) {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from) : Math.floor(from);
    if (from < 0) from += len;

    for (; from < len; from++) {
      if (from in this && this[from] === elt) return from;
    }
    return -1;
  };
}
Copier après la connexion

L'implémentation de ce polyfill garantit que la fonction indexOf est disponible dans les anciennes versions d'IE, permettant à la fonction JavaScript de fonctionner comme prévu. .

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