Si ha trabajado con JavaScript en cualquier longitud, sabe que Internet Explorer no implementa la función ECMAScript para Array.prototype.indexOf() [incluyendo Internet Explorer 8]. No es un gran problema, porque puede ampliar la funcionalidad en su página con el siguiente código.Cómo reparar Array indexOf() en JavaScript para navegadores Internet Explorer
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;
}
¿Cuándo debo implementar esto?
¿Debo envolverlo en todas mis páginas con la siguiente comprobación, que comprueba si existe la función de prototipo y, en caso negativo, seguir ampliando el prototipo de matriz?
if (!Array.prototype.indexOf) {
// Implement function here
}
O hacer revisión del navegador y si se trata de Internet Explorer, a continuación acaba de ponerlo en práctica?
//Pseudo-code
if (browser == IE Style Browser) {
// Implement function here
}
En realidad 'Array.prototype.indexOf' no es parte de ECMA-262/ECMAScript. Consulte http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf Quizás esté pensando 'String.prototype.indexOf' ... –
Es una extensión, no parte del norma original. Sin embargo, debería implementarse como parte de Javascript 1.6 (que IE no puede hacer) https://developer.mozilla.org/en/New_in_JavaScript_1.6 –
@Josh: solo se refería a "IE no implementa la función ECMAScript ... " –