Alexander Foken: Doch noch eine Frage ...

Beitrag lesen

Moin Moin !

<a href="goto.htm" onclick="dont_do_that();return false">bla</a>

Nur zum Verstaendnis: das "return false" ist die Rueckgabe der aktuellen JS-Prozedur, oder?
Nur, rein logisch: welche Komponente ist dann dafuer zustaendig, dass danach nix mehr getan wird (sprich: der Link angesteuert wird)?

Der Wert des Onclick-Attributs ist quasi eine unbenannte Javascript-Funktion, die der Browser aufruft, sobald geklickt wurde. Nur wenn diese Funktion false zurückgibt (und nicht etwa etwas Undefiniertes), bricht der Browser die Behandlung des Events dort ab. Ansonsten kommt der nächste Event-Handler dran, der ist in der Regel im Browser eingebaut und lädt goto.htm.

In Pseudo-Code:

function HandleMouseClick(item)
{
  if (item.hasOnClickEventHandler()) {
     if (item.onClick(item)===false) return;
  }
  item.BuildInOnClick(item);
}

function Link_BuildInOnClick(item)
{
  window.location.href=item.href;
}

In echtem Code kannst Du das z.B. bei www.mozilla.org bewundern. ;-)

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"