Si vous avez longuement travaillé avec JavaScript, vous savez qu'Internet Explorer n'implémente pas la fonction ECMAScript pour Array.prototype.indexOf () [y compris Internet Explorer 8]. Ce n'est pas un gros problème, car vous pouvez étendre les fonctionnalités de votre page avec le code suivant.
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;
}
Quand dois-je mettre cela en œuvre?
Dois-je l'envelopper sur toutes mes pages avec la vérification suivante, qui vérifie si la fonction prototype existe et sinon, continuez et étendez le prototype Array?
if (!Array.prototype.indexOf) {
// Implement function here
}
Ou le navigateur vérifie-t-il et s'il s'agit d'Internet Explorer, il suffit de l'implémenter?
//Pseudo-code
if (browser == IE Style Browser) {
// Implement function here
}
Array.indexOf
ne prend pas en compte les indices de départ négatifs. Voir l'implémentation de l'interruption de la suggestion de Mozilla ici: developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…
Array.prototype.indexOf
fait, ne fait pas partie de l'ECMA-262 / ECMAScript. Voir ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf Peut-être que vous pensezString.prototype.indexOf
...