Jürgen Havel: Unterschiedliches Verhalten einer Funktion

Beitrag lesen

Hallo,

hätte jemand Geduld, mir folgendes Problem zu erklären?
Bei einem nicht laufenden Programm stellte sich als Knackpunkt die im Folgenden
extrahierte Stelle heraus.

Beobachtung: Wenn man die Funktion fass() mit der Inline-Referenz anspricht,
erscheinen nacheinander wie erwartet die beiden Alertfenster.

Spricht man "fass()" aber mit dem Eventhandler "onSubmit" an, erscheint nur das erste
Fenster, das mit "setTimeout" verzögerte dagegen nicht.

Wie ist es möglich, daß die Funktion sich unterschiedlich verhält, wenn sie auf
verschiedene Weisen angesprochen wird? Daß sie überhaupt angesprochen wird beweist
ja das erste erscheinende Alertfenster, und ich hätte gedacht, daß sie dann stets
in gleicher Weise durchläuft.

Wenn man sie statt dessen mit einem Button und "onClick" anstelle eines Submitknopfes
und "onSubmit" anspricht, geht es. Aber es würde mich einfach interessieren, warum es mit
onSubmit nicht funktioniert.
Benutze Windows 2000 und IE6 auf Pentium II 400

Grüße von Jürgen
//////////////////////////////////////////////////

<html>
<head>
<title>Geht nicht</title>
<SCRIPT type=text/javascript>

function fass()
{
alert("Schwierige");
setTimeout("alert('Frage')",1000);
}

</SCRIPT>
</head>

<body>

<form name="arg" onSubmit='fass()'>
<input type="text" name="stich">
<input type="submit" value="abschicken">
</form>
<a href="javascript:fass()">Link zu "fass()"</a>

</body>
</html>