Calocybe: Funktion ohne Klammern?

Beitrag lesen

Hi Jens!

Interessant das das gerade inner Netscape-Docu steht ,
bei Netscape funktioniert nämlich auch mit Klammern
und sogar mit Parametern , beim IE aber nicht.

Bist Du sicher? Ich habe jetzt extra nochmal in der Netscape-Doku (JS1.1) nachgesehen, da findet sich folgender Abschnitt:

==== cut ====
<h2>Calling event handlers explicitly</h2>

In JavaScript for Navigator 3.0, you can reset an event handler specified by HTML, as shown in the following example.

<SCRIPT LANGUAGE="JavaScript">
    function fun1() {
       ...
    }
    function fun2() {
       ...
    }
</SCRIPT>

<FORM NAME="myForm">
    <INPUT TYPE="button" NAME="myButton" onClick="fun1()">
</FORM>

<SCRIPT>
    document.myForm.myButton.onclick=fun2
</SCRIPT>

Note that event handlers are function references, so you must assign fun2, not fun2() (the latter calls fun2 and has whatever type and value fun2 returns).
==== break ====

Das ist ja genau das, was ich in <25106.html> geschrieben habe.

==== continuation ====
Also, since the event handler HTML attributes are literal function bodies, you cannot use <INPUT onClick=fun1> in the HTML source to make fun1 the onClick handler for an input; you must call fun1 instead, as in the example.
==== break ====

Meintest Du vielleicht das? Bei den HTML-Attributen handelt es sich um "literal function bodies" (function body ist das, was zwischen { und } steht). Hier kannst Du also gerne irgendwelche Romane schreiben, insbesondere Functionsaufrufe mit Parameteruebergabe. Und hier MUSST Du die Klammern setzen, denn <INPUT onClick=fun1> heisse ja, dass innerhalb einer x-beliebigen Funktion die Zeile
    fun1;       // ohne Klammern --> Funktion wird NICHT aufgerufen
stehen wuerde, was bedeutet, das die Adresse (Pointer, Referenz) von fun1 abgefragt wird und das Ergebnis gleich weggeworfen wird (weil keiner Variable zugewiesen).

==== continuation ====
Finally, because JavaScript is case-sensitive, you must spell event handler names in lowercase in JavaScript.
==== cut ====

Beate, bitte beachten! Die Eventhandler muessen klein geschrieben werden. (Du hattest onKeypress geschreiben, woraufhin ich das dann auch immer getan habe.)

Calocybe