JavaScript-funktion i href vs. onclick

Jeg ønsker at køre en simpel JavaScript-funktion ved et klik uden omdirigering.

Er der nogen forskel eller fordel mellem at sætte JavaScript-opkaldet i href-attributten (som f.eks:

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

) vs. at sætte det i onclick-attributten (binde det til onclick-hændelsen)?

Løsning

At placere onclick i href ville støde dem, der tror stærkt på adskillelse af indhold og adfærd/handling. Argumentet er, at dit html-indhold udelukkende skal fokusere på indholdet og ikke på præsentation eller adfærd.

Den typiske vej i dag er at bruge et javascript-bibliotek (f.eks. jquery) og oprette en eventhandler ved hjælp af dette bibliotek. Det ville se noget i retning af:

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

Ud over alt dette vises href på browserens statuslinje, og onclick vises ikke. Jeg synes ikke det er brugervenligt at vise javascript-kode der.

Kommentarer (0)

Personligt synes jeg, at det er irriterende at placere javascript-opkald i HREF-tagget. Jeg er normalt ikke særlig opmærksom på, om noget er et javascript-link eller ej, og ofte ønsker jeg at åbne ting i et nyt vindue. Når jeg prøver at gøre dette med en af disse typer links, får jeg en tom side med ingenting på den og javascript i min placeringslinje. Dette kan dog omgås lidt ved at bruge et onlick.

Kommentarer (0)