Ich möchte eine einfache JavaScript-Funktion bei einem Klick ohne Umleitung ausführen.
Gibt es einen Unterschied oder einen Vorteil, wenn ich den JavaScript-Aufruf in das Attribut "href" einfüge (z. B. so:
<a href="javascript:my_function();window.print();">....</a>
) im Vergleich zu einem Aufruf im Attribut "onclick" (Bindung an das Ereignis "onclick")?
Das Einfügen des Onclick in die href würde diejenigen beleidigen, die stark an die Trennung von Inhalt und Verhalten/Aktion glauben. Das Argument ist, dass sich Ihr HTML-Inhalt ausschließlich auf den Inhalt und nicht auf die Darstellung oder das Verhalten konzentrieren sollte.
Der typische Weg ist heutzutage die Verwendung einer Javascript-Bibliothek (z.B. jquery) und die Erstellung eines Event-Handlers unter Verwendung dieser Bibliothek. Das würde etwa so aussehen:
$('a').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );
Ich persönlich finde es lästig, Javascript-Aufrufe in den HREF-Tag zu setzen. Ich achte in der Regel nicht wirklich darauf, ob etwas ein Javascript-Link ist oder nicht, und möchte oft Dinge in einem neuen Fenster öffnen. Wenn ich dies mit einem dieser Links versuche, erhalte ich eine leere Seite mit nichts darauf und Javascript in meiner Adressleiste. Allerdings ist dies ein wenig durch die Verwendung eines onlick umgangen.