Witam.
Dzisiaj przyszedł upragniony czas, gdy w końcu opiszę tutaj jakiś problem programistyczny. A mianowicie tablicę w JS vs IE7. Całkiem nie tak dawno walczyłem z wyświetlaniem danych z tablicy obiektów JS. Dane do JS przekazywane były z bazy danych z wykorzystaniem TWIGa, więc przykładowy kod wygląda następująco:
<script type="text/javascript"> var array = [ {% for value in dbData %} {'id': '{{ value.id }}', 'name': '{{ value.name }}' }, {% endfor %} ]; </script>
Jaki mamy tutaj problem? Na pierwszy rzut oka – żadnego. Aczkolwiek problem zaczął pojawiać się, gdy stronę zaczęto sprawdzać pod IE7 i IE8. Na tych przeglądarkach okazało się, że funkcja length wywołana na naszej tablicy zwraca na wymienionych wcześniej przeglądarkach liczbę o jeden większą, niż mamy tam faktycznych elementów. Dlaczego tak się działo? Z pomocą przychodzi nam standard języka JavaScript: w JavaScript tworząc tablicę nie dajemy przecinka po ostatnim elemencie. Proste rozwiązanie, które mimo wszystko może sprawić odrobinę problemów osobie które dopiero poznaje tajniki JavaScript.