Zum Inhalt springen

javascript-Fehler


Gast alexC++

Empfohlene Beiträge

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 von alexC++
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...