Gast alexC++ Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 (bearbeitet) Hallo, habe fogenden Code: <HTML> <HEAD> <TITLE>Test Custom Dialog</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> <SCRIPT language="javascript"> /*The function init() is called when the dialog is loaded.*/ function init() { MyApp = window.dialogArguments[0]; Tabelle = top.MyApp.CustomSetting.TabelleDubletten; //ein Array //Tabelle ist ein Array mit allen gefundenen doppelten Datensätzen //Tabelle[0] = nrid //Tabelle[1] = societe //Tabelle[2] = adresse //Tabelle[3] = var76 //Tabelle[4] = var77 //Tabelle[5] = pays alert("in WDS Anzahl Sätze: " + Tabelle.length); //Tabelle anlegen TabelleString = "<Table border='1'>"; for(var i = 0; i < Tabelle.length; i++) { Satz = Tabelle[i].split("---"); TabelleString+= '<tr><td><input type="button" id="+ Satz[0] +" name="+ Satz[0] +" value="+ Satz[0] +" onclick="buttonClick()"/></td>'; TabelleString+= '<td>'+ Satz[1] +'</td>'; TabelleString+= '<td>'+ Satz[2] +'</td>'; TabelleString+= '<td>'+ Satz[3] +'</td>'; TabelleString+= '<td>'+ Satz[4] +'</td>'; TabelleString+= '<td>'+ Satz[5] +'</td>'; TabelleString+= '</tr>'; } TabelleString+= "</Table>"; alert(TabelleString); //document.getElementByID("meinDiv").innerHTML = TabelleString; } function buttonClick(this) { alert("Button geklickt: " + this.value); } </SCRIPT> </HEAD> <BODY scroll="no" onload="init()"> <div id="meinDiv" name="meinDiv"/> </BODY> </HTML> und bekomme folgende Fehlermeldung: Bezeichner erwartet: --> <BODY scroll="no" onload="init()"> Welchen Bezeichner? Gruß Alex Bearbeitet 16. Januar 2009 von alexC++ Zitieren
Ormus Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 Hallo alex, das Problem liegt am parameter der funktion buttonClick(). this verweist ja imemr auf das aktuelle objekt, allerdings musst du das als argument im funktionsAUFRUF übergeben. wie der parameter innerhalb der funktion deklariert wird ist egal. im klartext function buttonClick(obj) { alert(obj.value); } und in der init funktion muss der aufruf wie folgt aussehen: ... TabelleString+= '<tr><td><input type="button" id="+ Satz[0] +" name="+ Satz[0] +" value="+ Satz[0] +" onclick="buttonClick([B]this[/B])"/></td>'; ... ausserdem musst du die ersten beiden zeilen der init funktion überarbeiten, weil die objekte dort unbekannt sind. MyApp = window.dialogArguments[0]; Tabelle = top.MyApp.CustomSetting.TabelleDubletten; //ein Array Das window objekt hat "von natur aus" keine eigenschaft dialogArguments und woher das objekt top kommt ergibt sich m.E. aus dem quellcode auch nicht... die solltest du (mit allen "unterobjekten" irgendwo deklarieren) grundsätzlich kannst du das objekt für die buttonClick funktion auch aus dem event herleiten. dadurch könntest du (falls du das brauchst) auch gleich eine unterscheidnug nach browsern vornehmen. also als parameter im aufruf übergibst du "event" und kannst entsprechend mit dem event das auslösende objekt bestimmen: aufruf: getEventSrcElement(event); function getEventSrcElement(e) { var obj, id; if (window.event) // das kennt der ie und ff net id = window.event.srcElement.id; // sofern id vorhanden else id = e.currentTarget.id; // das kennt ff return document.getElementById(id); }[/code] so ich hoffe das bringt dich erstmal weiter.. bis die tage Zitieren
Gast alexC++ Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 danke hat mir weiter geholfen. es war der parameter. die beiden ersten zeilen stimmen schon. das sind spezielle dinge, die nur bei dieser anwendung funktionieren. gruß Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.