Chci spustit jednoduchou funkci JavaScriptu na kliknutí bez jakéhokoli přesměrování.
Je nějaký rozdíl nebo výhoda mezi umístěním volání JavaScriptu do atributu href
(jako je tento:
<a href="javascript:my_function();window.print();">....</a>
) oproti umístění do atributu onclick
(vazba na událost onclick
)?
Umístění funkce onclick do href by urazilo ty, kteří pevně věří v oddělení obsahu od chování/akce. Argumentují tím, že váš html obsah by měl zůstat zaměřen výhradně na obsah, nikoli na prezentaci nebo chování.
Typickou cestou v dnešní době je použití javascriptové knihovny (např. jquery) a vytvoření obsluhy události pomocí této knihovny. Vypadalo by to nějak takto:
$('a').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );
Osobně považuji za otravné vkládat volání javascriptu do značky HREF. Obvykle nevěnuji pozornost tomu, zda je něco javascriptový odkaz, nebo ne, a často chci věci otevírat v novém okně. Když to zkusím udělat s jedním z těchto typů odkazů, zobrazí se mi prázdná stránka, na které nic není, a javascript v liště umístění. Tomuto problému se však dá trochu vyhnout použitím tlačítka onlick.