Andreas Nikisch: onClick="..." wird es immer komplett ausgeführt?

Beitrag lesen

Hallo Stefan,

Wenn ich so etwas mache:
<a href="test.html" onClick="funktion();">Klick</a>
kann ich dann davon ausgehen, dass die Funktion im onClick Teil immer komplett ausgeführt wird, oder kann sie durch das Laden der Seite einfach abgebrochen werden?

Sie sollte eigentlich schon ganz ausgefuehrt werden. Nur, wenn es Konflikte gibt, etwa wenn die Funktion ein location.href ausfuehren will, gibt es natuerlich ein Problem.

Nein ein location.href kommt da nicht vor - ich befürchtete nur, dass der Browser anfängt
die Seite zu laden und dann das JavaScript einfach abbricht... . Ist es eigentlich irgendwo dokumentiert, wie sich ein Browser in so einem Fall verhält?

Falls du Probleme mit so einer Konstruktion hast, kannst Du natuerlich auch, um sicher zu gehen, folgendes tun:
<a href="javascript:funktion()">Klick</a>
Und innerhalb der Funktion dann als letzten Befehl ein location.href="test.html" notieren. Hat einzig den Nachteil, dass User, die kein JavaScript eingeschaltet haben, nie und nimmer zu dieser Seite gelangen werden. Aber selbst dafuer gibt's Abhilfe mit folgendem Doppelbefehl:
<a href="javascript:funktion()">Klick</a>
<noscript><a href="test.html">Klick</a></noscript>

Hey das is eine gute Idee. Ich wollte zwar vermeiden, dass die Seiten per JS aufgerufen werden aber wenn es Probleme gibt kann ich es ja so machen.

Ciao,
Andy