Jeg vil kjøre en enkel JavaScript-funksjon på et klikk uten omdirigering.
Er det noen forskjell eller fordel mellom å sette JavaScript-kallet i href
-attributtet (slik som dette):
<a href="javascript:my_function();window.print();">....</a>
) kontra å legge det i onclick
-attributtet (binde det til onclick
-hendelsen)?
Å sette onclick i href vil fornærme dem som tror sterkt på å skille innhold fra atferd/handling. Argumentet er at html-innholdet ditt bør være fokusert utelukkende på innhold, ikke på presentasjon eller atferd.
Den typiske veien i disse dager er å bruke et javascript-bibliotek (f.eks. jquery) og opprette en hendelsesbehandler ved hjelp av det biblioteket. Det kan se omtrent slik ut:
$('a').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );
Personlig synes jeg det er irriterende å sette javascript-kall i HREF-taggen. Jeg er vanligvis ikke veldig oppmerksom på om noe er en javascript-kobling eller ikke, og vil ofte åpne ting i et nytt vindu. Når jeg prøver å gjøre dette med en av disse typene lenker, får jeg en tom side uten noe på den og javascript i posisjonslinjen. Dette omgås imidlertid litt ved å bruke en onlick.