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...