Udělejte to takto...
if (!Array.prototype.indexOf) {
}
Kompatibilita doporučená společností MDC.
Obecně platí, že detekční kód prohlížeče je velké ne.
Případně můžete použít funkci jQuery 1.2 inArray, která by měla fungovat ve všech prohlížečích:
jQuery.inArray( value, array [, fromIndex ] )
Úplný kód by pak byl tento:
if (!Array.prototype.indexOf) {
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;
}
}
Opravdu důkladnou odpověď a kód na tuto otázku a také na další funkce pole najdete v otázce Stack Overflow Oprava funkcí pole JavaScript v aplikaci Internet Explorer (indexOf, forEach atd.) .