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