dhtml crossbrowsing, need backup
lamm
- dhtml
0 Herbalizer0 Lamm0 Herbalizer0 lamm
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.
Hi!
Siehe http://forum.de.selfhtml.org/archiv/2003/5/48299/#m263667 dort gibt es zwei Hinweise zu mögliche Lösungen.
Gruß Herbalizer
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
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
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