Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

javascript-Fehler

Empfohlene Antworten

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++

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

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ß

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.