Jürgen Schomann: Atrribute setzen

Hi,

ich versuche folgendes in JavaScript

var SELECT_LIST = "select";
 var SELECT_LIST_OPTION = "option";
 var ID_SELECT_LIST = "_str_select_list";
 var _html_obj;

_html_obj = document.createElement(SELECT_LIST);
 _html_obj.setAttribute("id", ID_SELECT_LIST);
 _html_obj.setAttribute("onClick", "alert('Test');");
 document.body.appendChild(_html_obj);
 _html_obj = document.createElement(SELECT_LIST_OPTION);
 document.getElementById(ID_SELECT_LIST).options[0] = _html_obj;
 _html_obj.selected = true;
 _html_obj.text = "aaa";
 _html_obj = document.createElement(SELECT_LIST_OPTION);
 document.getElementById(ID_SELECT_LIST).options[1] = _html_obj;
 _html_obj.text = "bbb";

aber im IE 6 erfolgt keine Reaktion beim anklicken der Liste. In Netscape 7 klappt es.
Wenn ich die Liste zusammenstelle und mit innerHTML zuweise geht es bei beiden. Ich möchte aber gerne die o. g. Version, da innerHTML zum all-Objekt gehört und damit IE-spezifisch und nicht rein DOM-spezifisch ist.

Kann mir jemand dazu etwas sagen?
Vielen Dank im voraus.
Jürgen

  1. Hi,

    _html_obj.setAttribute("onClick", "alert('Test');");

    versuchs mal mit "onclick"

    oder

    _html_obj.onclick = funktionsname_ohne_runde_klammern;

    Ich möchte aber gerne die o. g. Version, da innerHTML zum all-Objekt gehört und damit IE-spezifisch und nicht rein DOM-spezifisch ist.

    Falsch! innerHTML ist nicht IE-spezifisch!
    innerHTML gehört ebenso zu allen Gecko-Browsern! Opera kennt es auch!

    http://www.mozilla.org/docs/dom/domref/dom_el_ref8.html

    Kann mir jemand dazu etwas sagen?

    Die zweite Variante oben ist doch ganz schick! Aber du kannst auch ruhig innerHTML nehmen!

    Gruß
    Christian