lamm: dhtml crossbrowsing, need backup

hi volks

der umstandt:
ich try hier grade, oder immernoch ein dhtml page zu schreiben.
das problem ist, die seite soll in mozilla und ie function(ieren).

das problem:
ich will ein select mit option dynamisch füllen, size ist fest also sprich egal, auch erhält jede option eine function als onclick. Und danach per javascript in ein 2. select übertragen durch den onclick im 1. select.

es tut alles solang ich mozilla benutze, im ie hingegen krachts nur.

nur was hab ich falsch gemacht ?

ist dhtml im ie anderst als von w3c vorgegeben ?

hier der relevante code:

html anteil:
<div align="center" id="feldx"></div>

javascript anteil:
myobj = document.getElementById("feldx");
var select = document.createElement("select");

for (var i = 0; i < Feldx[0].length; i++)
{
var option = document.createElement("option");
var value = document.createAttribute("value");
var optionText = document.createTextNode(Feldx[1][i]);
var onclick = document.createAttribute("onClick");
onclick.nodeValue = "einfuegen(value,myobj)";
value.nodeValue = i;
option.setAttributeNode(onclick);
option.setAttributeNode(value);
option.appendChild(optionText);
select.appendChild(option);
}

myobj.appendChild(select);

soweit ich das bisher raus hab is das prob das createAttribute("onClick") oder das "einfuegen(value,myobj)".

mozilla erkennt es richtig und führt die function aus, im ie hingegen scheint es so als würden die options keine functionen unterlegt haben.

  1. Hi!

    Siehe http://forum.de.selfhtml.org/archiv/2003/5/48299/#m263667 dort gibt es zwei Hinweise zu mögliche Lösungen.

    Gruß Herbalizer

    --
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    sh:( fo:) ch:? rl:( br:> n4:& ie:% mo:} va:} de:] zu:) fl:{ ss:) ls:& js:|
    1. Hi!

      Siehe http://forum.de.selfhtml.org/archiv/2003/5/48299/#m263667 dort gibt es zwei Hinweise zu mögliche Lösungen.

      Gruß Herbalizer

      thx @ Herbalizer, mein verständniss um das problem ist dank deines hinweise nun sehr ausgereift, und ich hasse ms auch mittlerweile ;o)

      ABER, es hilft mir nix bei meinem eigentlichen problem.

      Daher nochmal mein prob

      ie event
      option.attachEvent("onmousedown",einfuegen);
      ie node
      ?!? ich will kein Microsoft koennen ?!?

      mozilla-event
      option.addEventListener("click",einfuegen,true)
      mozilla node
      var onclick = document.createAttribute("onClick");
      onclick.nodeValue = "einfuegen(value,myobj)";
      select.setAttributeNode(onclick);

      dat mozi zeugs geht w3c sei dank.

      nur der ie macht probs.
      häng ich wie oben meiner option das attachEvent ein geht nix.
      schnapp ich mir zb irgendeinen gewaltsam eingeführten festenverdrahteten div, gehts.
      zb. document.getElementById(divx).attachEvent("onmousedown",einfuegen)
      geht wiederum.

      was mach ich falsch ? ? ?

      mfg lamm

      1. Hi!

        Du hast den hinweis von Thomas Meinike in

        Siehe http://forum.de.selfhtml.org/archiv/2003/5/48299/#m263667

        nicht beachtet, denn dann könntest du noch folgendes probieren:

        option.onclick = function() { einfuegen(); }

        Dürfte in beiden Browsern funktionieren, es sei denn, der IE ignoriert Eventhandler in option-Elementen generell.

        Gruß Herbalizer

        --
        SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
        sh:( fo:) ch:? rl:( br:> n4:& ie:% mo:} va:} de:] zu:) fl:{ ss:) ls:& js:|
        1. Hi!

          Du hast den hinweis von Thomas Meinike in

          Siehe http://forum.de.selfhtml.org/archiv/2003/5/48299/#m263667
          nicht beachtet, denn dann könntest du noch folgendes probieren:

          option.onclick = function() { einfuegen(); }

          Dürfte in beiden Browsern funktionieren, es sei denn, der IE ignoriert Eventhandler in option-Elementen generell.

          Gruß Herbalizer

          hast recht.

          der ie kann das option object nicht mit handlern versehen. nimmt man statdessen das select element tut der sache.
          scheint eh die sauberere programierung zu sein da man so nur 1 event listener hat anstadt anzahl=option.lenght listener ;o)

          option.onclick = function() { einfuegen(); }

          ka ob das tut, ich glaube nein.

          und last and may least:
          ie und mozilla kennen window.event
          aber
          ie window.event.srcElement.value
          mozilla window.event.target.value

          nützliche infos wo ich fand:

          das man weiss was überhaupt machbar is:
          http://www.sextro.de/javascript/objektabfrage/index.html

          das man weiss wie crossbrowsing event handling tut:
          http://web.dadanini.com:7980/books/DynamicWeb_in_21Tagen/WP_kap10.html

          mfg lamm