Rankin: HTML-Elementen Attribute per JS hinzufügen

Hallo!

Ich möchte für ein Input-Textfeld den JS-Handler onKeyUp definieren, aber aus bestimmten Gründen NICHT schon gleich im HTML hinschreiben.

FireFox, Opera und Netscape akzeptieren
element.addAttribute('onkeyUp', 'javascript:alert()');

IE will nicht, es passiert einfach garnichts.
Ich habe es auch schon mit element.onKeyUp = 'javascript:alert()'; probiert, aber auch das will IE nicht! (element.maxwidth = '10' geht z.B.!).

Hat irgendjemand eine Idee, wie ich im IE nachträglich Javascripthandler einbauen kann???

MfG

Rankin

  1. hi,

    Hat irgendjemand eine Idee, wie ich im IE nachträglich Javascripthandler einbauen kann???

    function blah() {
       alert("blah");
    }

    element.onkeyup = blah;

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. Hallo,

    Ich möchte für ein Input-Textfeld den JS-Handler onKeyUp definieren, aber aus bestimmten Gründen NICHT schon gleich im HTML hinschreiben.

    FireFox, Opera und Netscape akzeptieren
    element.addAttribute('onkeyUp', 'javascript:alert()');

    ^wozu steht hier der Marker "javascript:"?
    FireFox führt ein alert() ohne Inhalt aus? Normalerweise git es da ein
    Fehler: uncaught exception: [Exception... "Not enough arguments [nsIDOMWindowInternal.alert]"

    IE will nicht, es passiert einfach garnichts.

    Das ist bekannt. IE hat ein Problem mit .addAttribute, wenn der Attributknoten speziellen Inhalt, z.B. %SCRIPT% hat.

    Ich habe es auch schon mit element.onKeyUp = 'javascript:alert()'; probiert.

    1. Wieder die Frage: wozu steht hier der Marker "javascript:"?

    2. Das element.onkeyup ist hier JavaScript. In JavaScript ist Groß- bzw. Kleinschreibung bei Eventhandlern _nicht_ gleichgültig. Der Eventhandler heißt onkeyup.

    3. Der Eventhandler onkeyup erwartet in JavaScript die Übergabe einer Funktion. Das kann auch eine namelose (anonymous) Funktion sein.

    element.onkeyup = function() { alert("Hallo"); };

    viele Grüße

    Axel

  3. Prima, danke ihr zwei!

    Mit element.onkeyup gehts! :)