dom: dynamisch javascript einbinden
schildi
- javascript
hallo nochmal :),
ich hänge an ein dom-objekt attribute mit setAttribute().
wenn ein attribut auftaucht, welches javascript-code ausführt, also zb. ein onClick in einem a-tag, und ich da testweise alert('test'); übergebe, also:
obj.setAttribut("onClick","alert('test');");
dann macht der firefox das, der ie jedoch mal wieder nicht.
kann mir da jemand helfen?
gruß schildi
hallo nochmal :),
ich hänge an ein dom-objekt attribute mit setAttribute().
wenn ein attribut auftaucht, welches javascript-code ausführt, also zb. ein onClick in einem a-tag, und ich da testweise alert('test'); übergebe, also:
obj.setAttribut("onClick","alert('test');");
dann macht der firefox das, der ie jedoch mal wieder nicht.kann mir da jemand helfen?
gruß schildi
hallo schildi,
events könntest du auch so setzen.. dann klappt mit beiden browsern.
if (is_ie) {
t_tr.attachEvent("onmouseover",function (e) { testfunktion(); });
} else {
t_tr.addEventListener("mouseover", function (e) { testfunktion(); }, true);
}
grüße Chris
events könntest du auch so setzen.. dann klappt mit beiden browsern.
if (is_ie) {
t_tr.attachEvent("onmouseover",function (e) { testfunktion(); });
} else {
t_tr.addEventListener("mouseover", function (e) { testfunktion(); }, true);
}grüße Chris
kann es sein das sowas von innerhalb einer javascript klasse aus nicht funktioniert?
also das lag nicht an der klasse, sondern daran dass ich sowas versucht habe:
addEventListener(a, key, function (e){ eval(attributes[key]); })
das eval scheint er wohl nicht interpretieren zu wollen in solch einem zusammenhang? oder hab ich was übersehen. in attributs[key] steht ein string wie eben "alert('test');"
also das lag nicht an der klasse, sondern daran dass ich sowas versucht habe:
addEventListener(a, key, function (e){ eval(attributes[key]); })
das eval scheint er wohl nicht interpretieren zu wollen in solch einem zusammenhang? oder hab ich was übersehen. in attributs[key] steht ein string wie eben "alert('test');"
also geschafft. so gehts:
eval("eventListenerFunction = function(){"+attributes[key]+";}");
...addEventListener(a, key, eventListenerFunction);
Hallo,
eval("eventListenerFunction = function(){"+attributes[key]+";}");
In einem solchen Fall schreibt man
var eventListenerFunction = new Function(attributes[key]);
Mathias
In einem solchen Fall schreibt man
var eventListenerFunction = new Function(attributes[key]);
Ich dachte die Möglichkeit gibts nicht. Meinte das so in Erinnerung zu haben und habs deswegen nicht mal mehr ausprobiert.
danke für den tip!
kann es sein das sowas von innerhalb einer javascript klasse aus nicht funktioniert?
das nutze ich zwar in einer funktion, es ist aber nur syntax und sollte daher immer klappen. zumindest hab ich noch nie feststellen müssen, das ich so irgendwelche funktionen nicht an events binden konnte.
grüße Chris
Hallo,
ich hänge an ein dom-objekt attribute mit setAttribute().
wenn ein attribut auftaucht, welches javascript-code ausführt, also zb. ein onClick in einem a-tag, und ich da testweise alert('test'); übergebe, also:
obj.setAttribut("onClick","alert('test');");
dann macht der firefox das, der ie jedoch mal wieder nicht.
function handler (e) {
if (!e) e = window.event;
alert('test');
...
}
obj.onclick = handler;
Mathias