Emtec: Anfängerfrage

Hallo zusammen..
Ich versuche JavaScript zu lernen aber stoße des Öfteren auf Dinge, die ich absolut nicht nachvollziehen kann. Vielleicht kann mir einer von euch ja helfen. Es handelt sich um folgendes Codestück:

window.onload = function() {
  document.getElementById('link').onclick = function() {
    foo();
    return false;
  }
}

function foo() {
  document.getElementById('ergebnis').innerHTML = 'Fertig';
}

<body>
  <a href="" id="link">Starte</a>
  <div id="ergebnis"></div>
</body>

Das funktioniert ohne Probleme. Nach dem Klicken des Links, erscheint im div "ergebnis" das Wort "Fertig".
Ich möchte das onclick Event aber direkt im HTML Quelltext haben, weil ich vorm Aufrufen der Seite noch nicht weiss, wie die ID des Links ist. Also habe ich es so versucht:

function machwas(){
  foo();
}

function foo() {
  document.getElementById('ergebnis').innerHTML = 'Fertig';
}

<body>
  <a href="" id="link" onclick="machwas();">Starte</a>
  <div id="ergebnis"></div>
</body>

Ich dachte eigentlich, dass dieser Code genau das gleiche machen würde, wie der erste, weil der einzige Unterschied ja der ist, dass das onclick Event nun direkt im HTML Quelltext steht und die Funktion foo() durch die Funktion machwas() aufgerufen wird. Allerdings bleibt das "Fertig" nun nicht mehr im div "ergebnis" stehen. Es erscheint dort nur ganz kurz und verschwindet dann wieder.

Ausserdem verstehe ich nicht ganz, was das "false" im onload ,im ersten Code, macht (ich habe das aus einem Beispiel kopiert).

Kann mir jemand ein paar Antworten geben?

Viele Grüße

  1. Hallo

    nachdem onclick Event wird das on mouseup auf dem href ausgeführt. Die Seite wir bei Deiner Adressangabe dann neu geladen.

    Das return false unterbricht die Ereigniskette.

    Gruß

    Bernd

    1. Hallo

      nachdem onclick Event wird das on mouseup auf dem href ausgeführt. Die Seite wir bei Deiner Adressangabe dann neu geladen.

      Das return false unterbricht die Ereigniskette.

      Vielen Dank. Jetzt wird mir auch klar, wieso das so nicht ging.