Array.indexOf oraz horror w IE

Ostatnio udało mi się zrobić kawałek fajnego Javascriptu. Gdy już wszystko działało w FF, Chrome, Safari, to trzeba było przetestować to w IE. Akurat nawinął się IE8, najnowszy i wydawałoby się że wszystko tam ma… ale gdzie tam! Przecież to IE, tam nigdy wszystkiego nie ma. Na szczęście IE8 mówi w którym miejscu Javascriptu go coś boli i tak doszedłem do tego, że coś jest nie tak z funkcją indexOf działającą na tablicach. Nawet Aptana (taki Eclipse dla PHP, JS itp.) o tym informuje w swojej pomocy:

2009-04-16-082213

Reszta to przykład zastosowania. Najważniejsza linia to oczywiście:

Supported: Mozilla 1.0+; Netscape 3.0+

Gdybym ja to przeczytał wcześniej… Funkcja nie działa tylko w IE. Daleko nie szukając, można znaleźć szybkie rozwiązanie dla niepełnosprawnego IE:

if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i

Albo można jeszcze prościej, jeśli używamy jQuery:

jQuery.inArray(value, array);

Zostaw odpowiedź

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.