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
)?
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; } );
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.