Ich bin K.O. - wie Axel Schulz gestern. Habs nun mit folgendem versucht, da ich dachte, wenn ich beide Strings innerhalb des selben Objekts evaluiere bringts was. Diese Theorie hätte funktioniert, wenn eval('XYZ') immer gleich XYZ (an der selben stelle geschrieben) wäre - so wie ich das bei Struppi vorher verstanden hab. Dem ist aber nicht so. Mein Versuch:
<a href="#" id="xy" onclick="js(onclick_code);">click me</a>
<script type="text/javascript">
function attach(id, handler, code, script)
{
var xy = document.getElementById(id);
xy[handler + "_code"] = code;
if (!xy.js) {
xy.js = function (x) { alert("JS"); eval(x); alert(test); }
}
xy.js(script);
};
attach("xy", "onclick", "test()", "function test() { alert('TEST'); }");
// HIER SIEHT MANS: ALLES TRANSIENT!!!!
// document.getElementById('xy').js();
</script>
Kommentiert man die letzte Zeile aus, sieht man warums nicht funktioniert. Die Evaluierung des Funktionsstring (wenn er exakt so geschrieben ist) ist komplett transient.
***HEUL***
Danke euch trotzdem.
Johanna