Aufruf von Funktionen in generiertem HTML-Code
Camo
- javascript
Hallo zusammen,
ich habe einen Fragebogen erstellt, dessen HTML-Code über ein JavaScript generiert wird. Also ungefähr so:
function generieren() {
var htmlText="";
htmlText+= "<html>"
...
htmlText += '<input type=button name="erlaeuterung" value="Erläuterungen" onClick=erlaeuterungen()>'
...
In den Fragebogen habe ich mehrere Buttons integriert, die bei onClick ihrerseits wieder eine JavaScript Funktion aufrufen sollen. Das Problem ist, dass das nicht klappt, weder wenn ich die Funktion ins gleiche Script packe, noch als externe .js Datei. Wäre sehr dankbar für einen Hinweis woran es liegen könnte.
Vielen Dank und beste Grüße
Camo
PS: hier noch einmal eine der Funktion die onClick ausgeführt werden soll:
function erlaeuterungen ()
{
erlaeuterungstext="<b>Erläuterungen zu den Antwortalternativen</b>"
Frame2=eval("parent."+'erlaeuterung')
erlaeuterung ='<HTML><BODY bgcolor="#DEDEDE">'
erlaeuterung +=erlaeuterungstext
erlaeuterung +='</body></html>'
if (beantwortet=="ja")
{
Frame2.document.write (erlaeuterung)
}
else
{
alert("Sie müssen den Test auswerten, bevor die Erläuterungen verfügbar sind.")
}
Hallo zusammen,
ich habe einen Fragebogen erstellt, dessen HTML-Code über ein JavaScript generiert wird. Also ungefähr so:
function generieren() {
var htmlText="";
htmlText+= "<html>"
...
htmlText += '<input type=button name="erlaeuterung" value="Erläuterungen" onClick=erlaeuterungen()>'
...
Wenn das so ist, ist das flasch. Was für eine Fehlermeldung erhälst du?
Du musst die Anweisung noch in Klammern setzten, daneben musst du schauen das du die Funktion richtig referenzierst. In welchem Fenster ist das Formular und in welchem die Funktion?
htmlText += '<input type=button name="erlaeuterung" value="Erläuterungen" onClick="erlaeuterungen()>"'
function erlaeuterungen ()
{erlaeuterungstext="<b>Erläuterungen zu den Antwortalternativen</b>"
Frame2=eval("parent."+'erlaeuterung')
Wozu eval? eval ist evil und in 99,99999% der Fälle überflüssig, gefährlich und langsamer.
Du willst: var Frame2 = parent[erlaeuterung];
erlaeuterung ='<HTML><BODY bgcolor="#DEDEDE">'
erlaeuterung +=erlaeuterungstext
erlaeuterung +='</body></html>'if (beantwortet=="ja")
{
Da fehlt:
Frame2.open();
Frame2.document.write (erlaeuterung)
und
Frame2.close();
Struppi.
Hi Struppi,
vielen Dank für Deine Antwort. Leider konnte ich nicht den ganzen Quelltext des Scripts abdrucken, so daß es vermutlich schwierig war zu sehen wo der Fehler liegt. Das Script an sich läuft nämlich anstandslos und es gibt keine Fehlermeldung bei der Ausführung. Nur das eben nichts passiert, wenn man auf die Buttons drückt. Ich habe das Problem allerdings mitlerweile anders gelöst (rumprobier hoch drei). Vielen Dank auf jeden Fall für Deine Antwort!
Viele Grüße
Camo