JavaScript-funksjon i href vs. onclick

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)?

Løsning

Å 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; } );
Kommentarer (6)

I tillegg til alt her, vises href på nettleserens statuslinje, og onclick ikke. Jeg synes det er lite brukervennlig å vise javascript-kode der.

Kommentarer (0)

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.

Kommentarer (0)