Pseudoadresy Drukuj
Ocena użytkowników: / 0
SłabyŚwietny 
Wpisany przez Patryk yarpo Jar   
poniedziałek, 21 września 2009 21:24

Bardzo częstym jest wywołanie jakiejś funkcji JS po konkretnej akcji – np. kliknięciu. Często się także zdarza, że po kliknięciu na link, który jest stworzony tylko po to, aby wywołać tę funkcję. Najczęstszą konstrukcją z jaką się spotykam jest:

 <a href="#" onclick="skrypt()">Wywołaj</a> 


No i takie coś działa. Jednak warto zauważyć, że nie wygląda zbyt ładnie. Po za tym, użytkownik nie widzi tak naprawdę co się stanie po kliknięciu, gdyż w pasku statusu zobaczy jedynie „#”. (fakt jeśli zobaczy odwołanie do funkcji także, bez zaglądnięcia w kod, niewiele będzie wiedział, ale zawsze coś... :P ).

Można to zmienić, a oto sposób:

 <a href="javascript:skrypt();">Wywołaj</a> 


Działanie takiego wywołania będzie identyczne. A nawet lepsze – nie każdy link musi być wywołany na kliknięcie – niektórzy używają klawiatury... Jednak, aby być pewnym, że skrypt się wykona, a nam na ekranie nie pokaże się nic niepożądanego, warto użyć funkcji void():

 <a href="javascript:void(skrypt());">Wywołaj</a> 


Teraz już wszystko będzie ładnie pięknie :).

Aha, zapomniałbym. W atrybucie href znacznika a, nie może być spacji. Jeśli wywołujesz funkcję, która wymaga tego – np:

 <a href="javascript:void(skrypt(new jakas_klasa));">Wywołaj</a> 


To zamiast spacji " ", wstaw: "%20". W żaden sposób nie wpłynie to na działanie skryptu, a walidator nie będzie krzyczał.