poniedziałek, 1 kwietnia 2013

problem z safari

W ramach testów jednego z realizowanych projektów spotkała mnie niespodzianka.
Mam taką oto konstrukcję realizującą po stronie javascriptu funkcjonalość grida z podświetlanymi wierszami, a po kliknięciu na cały wiersz jest robiony redirect do wskazanego rekordu.

Niby standard, ale ja sobie wymyśliłem, że zrobię tak, iż linkiem będzie pierwszy href znajdujący się w znaczniku td w tabeli, coś w stylu:

<table class="grid">
 <tr>
  <td><a href="link.php?id=12></a>jakaś nazwa<td>
  <td>kolumna2</td>
 </tr>
</table>

Przy pomocy jquery zrobione jest to podświetlanie, klikanie, i takie tam


Z racji wielu zależności nie pracuję na Macach i generalnie poruszam się w świecie windows.
Testowałem swój kod jquery w IE, FF, Chrome, Opera ... wszystko chodzi.

Okazało się że powinienem też przetestować na Macu ... myślałem że to czysta formalność ...
Ponieważ nie mam Maca na stanie zainstalowałem sobie obraz VMware (tak ściągnąłem go z sieci, wiem że to niezgodne ... ale nie wydam kilku tyś PLN tylko po to żeby sprawdzić czy kawałek kodu chodzi na Macach, sorry)

I po instalacji  ku mojemu zdumieniu mój grid nie działał. Po włączeniu konsoli developerskiej okazało się że Safari na macu wyłożyło się na:  event.currentTarget.click();

Kurcze, długo szukałem, ale problem był gdzieś głęboko w jquery, a właściwie nie był to problem jquery tylko tego że safari w specyficznym przypadku błędnie odnosiło się do obiektu okna.

Zacząłem się trochę głowić, co z tym fantem zrobić, bo tej konstrukcji używałem już w całym projekcie, a rozwiązania widać nie było.

Po spacerze z psem poszukałem w sieci nowszego obrazu, okazało się że Mac OS Lion miał safari w wersji 6 i konstrukcja działa :-) ... na całe moje szczęście.


Brak komentarzy:

Prześlij komentarz