Maison > interface Web > js tutoriel > Pourquoi « Array.indexOf() » ne fonctionne-t-il pas dans IE8 et comment puis-je y remédier ?

Pourquoi « Array.indexOf() » ne fonctionne-t-il pas dans IE8 et comment puis-je y remédier ?

Barbara Streisand
Libérer: 2024-11-27 06:24:11
original
957 Les gens l'ont consulté

Why Doesn't `Array.indexOf()` Work in IE8, and How Can I Fix It?

Dépannage du problème Array.indexOf() dans IE8

La méthode indexOf() est largement disponible dans les navigateurs modernes pour rechercher des éléments dans des tableaux. Cependant, il peut rencontrer des problèmes dans les anciennes versions d'Internet Explorer.

Un exemple de script qui échoue dans IE8 en raison de l'indexOf() manquant est :

function CheckMe() {
    var allowed = new Array('docx','xls','xlsx', 'mp3', 'mp4', '3gp', 'sis', 'sisx', 'mp3', 'wav', 'mid', 'amr', 'jpg', 'gif', 'png', 'jpeg', 'txt', 'pdf', 'doc', 'rtf', 'thm', 'rar', 'zip', 'htm', 'html', 'css', 'swf', 'jar', 'nth', 'aac', 'cab', 'wgz');
    var fileinput=document.getElementById('f');
    var ext = fileinput.value.toLowerCase().split('.');
    if ( allowed.indexOf(ext[1]) == -1) 
    {
        document.getElementById('uploadsec').innerHTML = document.getElementById('uploadsec').innerHTML;
        alert('This file type is not allowed!');
    }
}
Copier après la connexion

Solution pour IE8 Compatibilité

Pour résoudre ce problème dans IE8, il est nécessaire de définir explicitement la fonction indexOf() pour l'objet Array en utilisant un polyfill :

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(elt /*, from*/) {
    // Code from MDN or another compatible implementation
  };
}
Copier après la connexion

Après avoir implémenté ce polyfill, la méthode indexOf() devrait fonctionner comme prévu dans IE8 et d'autres navigateurs qui peuvent ne pas le prendre en charge nativement.

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 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