Funkcia JavaScript v href vs. onclick

Chcem spustiť jednoduchú funkciu JavaScriptu na kliknutie bez presmerovania.

Je nejaký rozdiel alebo výhoda medzi umiestnením volania JavaScriptu do atribútu href (napr:

<a href="javascript:my_function();window.print();">....</a>

) oproti umiestneniu do atribútu onclick (viazanie na udalosť onclick)?

Riešenie

Umiestnenie funkcie onclick do href by urazilo tých, ktorí sú presvedčení o oddelení obsahu od správania/akcie. Argumentujú tým, že váš html obsah by mal zostať zameraný výlučne na obsah, nie na prezentáciu alebo správanie.

Typickou cestou v súčasnosti je použitie javascriptovej knižnice (napr. jquery) a vytvorenie obsluhy udalosti pomocou tejto knižnice. Vyzeralo by to asi takto:

$('a').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );
Komentáre (6)

Okrem toho všetkého sa href zobrazuje na stavovom riadku prehliadača a na kliknutie nie. Myslím, že nie je užívateľsky príjemné zobrazovať tam javascriptový kód.

Komentáre (0)

Osobne považujem vkladanie volaní javascriptu do značky HREF za otravné. Zvyčajne nevenujem pozornosť tomu, či je niečo javascriptový odkaz alebo nie, a často chcem veci otvárať v novom okne. Keď sa o to pokúsim s jedným z týchto typov odkazov, zobrazí sa prázdna stránka bez ničoho a javascript v paneli umiestnenia. Toto sa však trochu obchádza použitím onlick.

Komentáre (0)