Hallo,
ich denke mal schon, dass es irgendwie möglich ist, wenn auch eventuell etwas kompliziert ;-) . Ich finde nur deine Angabe etwas schwer zu verstehen:
Wo baust du die Seite ein?
Wo soll der Link hin?
Wohin schickst du deinen ajax request, dass du nicht weißt wie die dynamich erzeugte Funktion heißt? Könnte man das ganze nicht erheblich erleichtern, in dem man die Daten anders strukturiert und mit mehreren Requests genau die Information bekommt die man benötigt - bzw Objekte verschickt.
Wohin kommt der Link für das nächste Aufgabenblatt?
usw.
Ohne genaue Beschreibung wirds bei so einem vermutlich komplexen Vorhaben für einen Ausenstehenden einfach schwer dir zu helfen.
ok stell dir folgendes vor:
du hast eine seite, die aus 2 iframes besteht. sagen wir oben ist iframe 1 und unten iframe 2. in iframe 1 befindet sich eine seite mit buttons. iframe 2 beinhaltet eine seite für usereingaben und sollte hier glaube ich nicht weiter von relevanz sein.
so...du möchtest jetzt nun ein aufgabenblatt generieren lassen. also klickst du ihn iframe 1 auf einen der buttons und schickst das ajax request ab. das request wird an ein servlet geschickt. dieses servlet generiert dir 100% dynamisch ein solches aufgabenblatt. ausserdem wird eine neue html seite erzeugt. in dieser html seite ist das besagte aufgabenblatt über einen link eingebettet. dieser link ruft eine ebenfalls dynamisch erzeugte javascript funktion auf. sagen wir sie würde in unserem beispiel test0() heissen. die definition dieser funktion test0() ist ebenfalls in der generierten html seite enthalten. hat das servlet dir das alles generiert, wird das alles zurück zum browser gesandt. dort angekommen wird die generierte seite in iframe 1 eingebaut.
soweit so gut. das problem besteht jetzt in dem eigentlichen link zum aufgabenblatt. ich hatte ja erwähnt, dass der link die dynamisch erzeugte javascript funktion test0() aufrufen soll. ein klick auf diesen link verursacht aber leider einfach nur eine ausgabe in der fehlerkonsole von firefox ( test0() is undefined ).
der tip mit der eval funktion funktioniert bestens, solange ich die funktion kenne, bzw in der server antwort auch direkt der aufruf einer solchen funktion enthalten ist. soll heissen, wenn ich in dem beispiel mit unserer test0() funktion direkt einen aufruf, nach der evaluierung mit eval(), in der "onreadystate"-funktion mache, funktioniert alles. aber ich muss dem browser irgendwie klar machen, das er beim klick auf den link für das aufgabenblatt die funktion test0() aufruft.
da die funktionen die ich vom servlet bekomme nicht immer test0() heissen, sondern auch test1(), test2(), ... , test4711() heissen können, wirds noch etwas kniffliger als es sowieso schon ist.
eine umstrukturierung der anwendung ist leider nicht möglich und mit erheblichem mehraufwand verbunden.