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

Hi,

ich hab eine kleine Frage. 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?

Ciao,
Andy

  1. Hallo Andy

    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.
    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>

    viele Gruesse
      Stefan Muenz

    1. 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