Blog jak widać już nie jest aktualizowany. I raczej nie będzie. Wisi sobie ot tak, ze względów historycznych :)

Array.indexOf i problem w przeglądarce Internet Explorer

Krzysztof Rygielski | 2010-09-27 13:32 | Kategorie: Javascript, jQuery

Pracując przy jednym z projektów naciąłem się na głupią rzecz. W javascript potrzebowałem odnaleźć sprawdzić, czy pewien element znajduje się w tablicy. Intuicyjnie zastosowałem tutaj metodę indexOf, czyli coś w tym stylu:

var tab = jakis_tam_string.split(','); // słowa rozdzielone przecinkami rzutuję na tablicę

if(tab.indexOf('słowo') < 0) {
  // jeśli tablica nie zawiera tego elementu to coś tam robimy
}

Wszystko było ładnie i pięknie, ale oczywiście nie w Internet Explorer (mowa tu o wersji 8, bo na takiej tylko teraz testuję działanie kodu). Co się okazuje? Po latach rozwijania tej przeglądarki, zespół Microsoftu nadal nie zaimplementował tej funkcji! Jej wywołanie skutkuje błędem o nieznanej metodzie i wysypaniem działania kodu. Zasadniczo można to samemu zaimplementować, dodając tą metodę - elastyczność javascriptu na to pozwala. Ale w sumie po co, skoro i tak jednocześnie korzystam z biblioteki jQuery :-) Oferuje ona metodę dającą mi dokładnie to, co chcę:

if(jQuery.inArray('słowo',tab) < 0) {
 //  i tutaj nasz kod
}

I teraz wszystko działa jak trzeba również w IE :-)

Oj wstyd panowie programiści z MS, wstyd...