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; }; }
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!