Maison > interface Web > js tutoriel > Comment puis-je résoudre le problème de la méthode « indexOf » pour les tableaux dans IE8 ?

Comment puis-je résoudre le problème de la méthode « indexOf » pour les tableaux dans IE8 ?

DDD
Libérer: 2024-11-25 03:34:14
original
645 Les gens l'ont consulté

How Can I Fix the `indexOf` Method Issue for Arrays in IE8?

IndexOf manquant d'IE8 pour les tableaux : une solution

Dans cette fonction JavaScript courante, l'utilisation de Array.prototype.indexOf dans la condition if ( autorisé.indexOf(ext[1]) == -1) provoque un problème dans IE8. Pour comprendre pourquoi, examinons le comportement unique d'IE8.

IE8, contrairement aux navigateurs modernes tels qu'Opera, Firefox et Chrome, ne dispose pas d'une méthode indexOf pour les tableaux. Cette omission vient du fait que le standard ECMAScript 5, qui introduisait la méthode indexOf, n'était pas supporté par IE8. Par conséquent, les tentatives d'utilisation de la méthode indexOf sur les tableaux entraîneront une erreur dans IE8.

Pour résoudre ce problème, nous pouvons adopter la stratégie suivante :

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

Cet extrait de code , provenant de MDN, définit un polyfill pour la méthode indexOf. Il garantit qu'Array.prototype.indexOf est disponible dans tous les environnements, y compris IE8. En ajoutant ce code avant d'utiliser indexOf sur les tableaux, nous pouvons garantir qu'il fonctionnera correctement dans tous les navigateurs, y compris IE8.

En implémentant cette solution, la fonction d'origine fonctionnera de manière transparente dans IE8, permettant aux développeurs de vérifier si une extension de fichier spécifique est autorisée dans un fichier sélectionné par l'utilisateur.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal