Forum Doku Wiki Blog

Forumsarchiv 2006, Dezember
Fehlermeldung: undefined

archivierte Beiträge lesen

  1. (JAVASCRIPT) Fehlermeldung: undefined von Compiwurstel, 05. 12. 2006, 10:48

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 10:48 Uhr von Compiwurstel veröffentlicht.

Hallo zusammen,
ich habe folgendes Skript:

var text= new Object();

text['ip01a'] = "Hier steht der erste Text";
text['ip01b'] = "Hier steht der zweite Text";
text['ip01c'] = "Hier steht der dritte Text";
text['ip01d'] = "Hier steht der vierte Text";
text['ip01e'] = "Hier steht der fünfte Text";

function loadtxt(txt) {
document.getElementById("subline").innerHTML = text[txt];
}

Die Texte sollen in das folgende div geladen werden:

<div id="subline">&nbsp;</div>

Der Aufruf erfolgt wie folgt:

<a href="javascript:loadtxt(this.id)" id="ip01a">Link</a>

An anderer Stelle funktioniert das Skript einwandfrei, nur hier bekomme ich in dem div an Stelle des Textes die Ausgabe "undefined".
Ich versteh's nicht!

Zur Info: Die Seite, auf der skript, div und Aufruf stehen, wird per php in eine Rahmenseite geladen.

Kann mir jemand sagen, woran der Fehler liegt? Danke schon mal!

Gruß
Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 11:19 Uhr von frankx veröffentlicht.

Hellihello Compiwurstl,

> <a href="javascript:loadtxt(this.id)" id="ip01a">Link</a>

mit a href="" onclick="loadtxt(this.id)" id="ip01a">Link</a> gehts bei mir, aber komischerweise bleibst nicht im <div> stehen.

>
frankx

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 11:25 Uhr von frankx veröffentlicht.

Hellihello Compiwurstl,

mit <a href="#" onclick="loadtxt(this.id)" id="ip01a">Link</a> gehts
vermutlich auch mit href="loadtxt... ;return false;"

Gruß,

frankx

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 11:59 Uhr von Compiwurstel veröffentlicht.

Hallo frankx

> mit <a href="#" onclick="loadtxt(this.id)" id="ip01a">Link</a> gehts

Guter Tipp!!! Vielen Dank, so funzt's! Jetzt hab ich nur noch ein Problem:
Da die Seite - wie gesagt - in eine andere per php includet wird, hat sie kein body-tag und folglich ist leider auch kein "onload" möglich, mit dem ich bereits beim Aufruf der Seite die Funktion loadtxt() auslösen könnte. Hast du oder jeamnd anders eine Idee, wie ich das anders lösen könnte?

Gruß
Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 12:10 Uhr von wahsaga veröffentlicht.

hi,

> Da die Seite - wie gesagt - in eine andere per php includet wird, hat sie kein body-tag und folglich ist leider auch kein "onload" möglich, mit dem ich bereits beim Aufruf der Seite die Funktion loadtxt() auslösen könnte. Hast du oder jeamnd anders eine Idee, wie ich das anders lösen könnte?

window.onload = funktionsreferenz;
im Javascript.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 12:26 Uhr von Compiwurstel veröffentlicht.

Hallo wahsaga,
danke für die schnelle Rückmeldung.

> window.onload = funktionsreferenz;
> im Javascript.

Der vollständige Funktionsaufruf lautet ja:
loadtxt(this.id)" id="ip01a"

Wenn ich das jetzt mit in das Skript packe, wie binde ich denn dann die id ein?

Gruß Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 12:44 Uhr von Struppi veröffentlicht.

> > window.onload = funktionsreferenz;
> > im Javascript.
>
> Der vollständige Funktionsaufruf lautet ja:
> loadtxt(this.id)" id="ip01a"

Ja eben, die Frage ist welche id du benutzen willst.

> Wenn ich das jetzt mit in das Skript packe, wie binde ich denn dann die id ein?

In die funktionsreferenz.

function() { loadtxt('id'); }

Struppi.
--
Javascript ist toll (Perl auch!)

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 12:50 Uhr von Compiwurstel veröffentlicht.

Hallo Struppi,
alles klar, vielen Dank! Ich steh heut ein bisschen auf dem Schlauch, mein Kreislauf mag das Wetter nicht und mein Hirn meinen Kreislauf nicht! ;-)

Das Prob ist also gelöst, nur leider gibt es ein Neues (siehe Beitrag oben von 12.45!

Gruß Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 12:45 Uhr von Compiwurstel veröffentlicht.

> Guter Tipp!!! Vielen Dank, so funzt's!

Hilfe, zu früh gefreut! Jetzt gibt's nämlich ein ganz anderes Problem:
Wie gesagt, ich verwende die Funtion auch noch an anderer Stelle (natürlich mit anderen id und anderem Funktionsnamen!!!) und zwar:
Es gibt die Seite "info.php", die bildet das Seitenlayout und dort gibt es ein div (id="label").
In diese Seite wird nun die Navigation ("nav_ip01.inc") includet. Jeder Menüpunkt enthält per mouseover-Befehl den Aufruf:
zeigetext(this.id)" id="info", wobei die id an den jeweiligen Menüpunkt angepasst wird. Der Text wird dann in das div ("label") geladen. Das Skript wird als externe Datei im head eingebunden.

Wenn nun in die Seite "info.php" die Seite "picture.inc.php" geladen wird auf der nun das skript und die Aufrufe zu laodtxt() stehen, erscheint wiederum in dem div ("label") undefined.

Und das, obwohl - wie gesagt - Befehlsname und IDs unterschiedlich sind. Was ist da los?

Gruß Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 12:50 Uhr von wahsaga veröffentlicht.

hi,

> Und das, obwohl - wie gesagt - Befehlsname und IDs unterschiedlich sind. Was ist da los?

Betrachte bitte den HTML-Quelltext so, wie er im Browser ankommt.

Ob du dir den per PHP include zusammenstellst, oder von deiner Oma hast stricken lassen, interessiert zunächst mal überhaupt nicht.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 12:54 Uhr von Compiwurstel veröffentlicht.

Hallo Wahsaga

> Betrachte bitte den HTML-Quelltext so, wie er im Browser ankommt.

Ich weiß nicht, ob ich richtig verstehe, worauf du hinaus willst, nur soviel: ohne die Einfügung des neuen Skript "loadtxt()" hat es im Rahmen fehlerfrei funktioniert, also irgendwie vertragen die beiden Skripte sich ja offenbar nicht miteinander, aber ich weiß nicht wieso!

Gruß Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 12:56 Uhr von wahsaga veröffentlicht.

hi,

> ohne die Einfügung des neuen Skript "loadtxt()" hat es im Rahmen fehlerfrei funktioniert, also irgendwie vertragen die beiden Skripte sich ja offenbar nicht miteinander, aber ich weiß nicht wieso!

Mit "irgendwie" können wir auch nicht mehr anfangen.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 13:04 Uhr von Compiwurstel veröffentlicht.

Hallo Wahsaga

> Mit "irgendwie" können wir auch nicht mehr anfangen.

Ja, das nehme ich auch an! Aber da ich die Seitenstruktur beschrieben und die Codes aufgelistet habe, weiß ich im Mom welche Infos du noch gerne hättest!

Gruß Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 13:08 Uhr von wahsaga veröffentlicht.

hi,

> Aber da ich die Seitenstruktur beschrieben

Wenn du damit das "x includet y, welches seinerseits z einbindet" meinst - noch mal: Das interessiert hier überhaupt nicht. Relevant ist, was beim Client ankommt.

> und die Codes aufgelistet habe,

Bruchstücke, an denen dann auch noch was geändert wurde - nicht sehr aussagekräftig.

> weiß ich im Mom welche Infos du noch gerne hättest!

Ich hätte gerne, dass _du_ mit sinnvollem Debugging anfängst.
Struppi schlug dir ja bereits einen simpeln, trivialen Anfang vor.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 13:23 Uhr von Compiwurstel veröffentlicht.

Hallo Wahsaga,

> Bruchstücke, an denen dann auch noch was geändert wurde - nicht sehr aussagekräftig.

hier ist der Code der Datei "js/txt2layer.js":

var text= new Object();

text['emp'] = "&nbsp;";
text['start'] = "Infos zum Menü 1";
text['info'] = "Infos zum Menü 2";
text['akt'] = "Infos zum Menü 3";
text['faq'] = "Infos zum Menü 4";
text['serv'] = "Infos zum Menü 5";
text['kont'] = "Infos zum Menü 6";
text['dwld'] = "Infos zum Menü 7";
text['sdmp'] = "Infos zum Menü 8";

function zeigetext(txt) {
document.getElementById("label").innerHTML = text[txt];
}

Das DIV:

<div id="label">&nbsp;</div>


Der Aufruf erfolgt so:

<a href="index.php" onmouseover="tauschen(document.st, '../../layout/pics/pix/dorange.gif'); zeigetext(this.id)" id="start" onmouseout="tauschen(document.st, '../../layout/pics/pix/dviolet.gif'); zeigetext('emp')">STARTSEITE</a>

> Ich hätte gerne, dass _du_ mit sinnvollem Debugging anfängst.
> Struppi schlug dir ja bereits einen simpeln, trivialen Anfang vor.

Die alert-Ausgabe lautet:
[object Object]
start=undefined

und

[object Object]
emp=undefined

Gruß Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 13:44 Uhr von wahsaga veröffentlicht.

hi,

> Die alert-Ausgabe lautet:
> [object Object]
> start=undefined
>
> und
>
> [object Object]
> emp=undefined

Also ist text zwar ein Objekt, aber es besitzt keine Eigenschaften start und emp.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 13:53 Uhr von Compiwurstel veröffentlicht.

Hallo,
und da dreht sich für mich die Sache jetzt im Kreis. Wieso ist das jetzt plötzlich so, wo es doch die ganze Zeit funktioniert hat (und auf den Seiten, auf denen nicht gleichzeitig die Funktion "loadtxt()" aufgerufen wird auch noch funktioniert)?

Gruß Compiwurstel
 

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 13:51 Uhr von Struppi veröffentlicht.

> Die alert-Ausgabe lautet:
> [object Object]
> start=undefined
>
> und
>
> [object Object]
> emp=undefined

dann ist in deiner Funktion das text objekt nicht das Objekt was du weiter oben definiert hast, sonst würde es ja funktionieren.

D.h. jetzt musst du weiter auf Spurensuche gehen und dir z.b. die Details des Objektes anzeigen lassen, z.b. mit folgender Funktion:

function debugObj(o)
{
   var t = 'Objekt: ' + o;
   for(var a in o)
   t += '\n' + a + ( typeof o[a] == 'String' ? o[a] : typeof o[a]);
   alert(t);
}

debugObj(text);

Struppi.
--
Javascript ist toll (Perl auch!)

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 13:59 Uhr von Compiwurstel veröffentlicht.

Hallo Struppi,

> function debugObj(o)
> {
>    var t = 'Objekt: ' + o;
>    for(var a in o)
>    t += '\n' + a + ( typeof o[a] == 'String' ? o[a] : typeof o[a]);
>    alert(t);
> }
>
> debugObj(text);

Wenn ich diese Funktion in das Skript einbaue bekomme ich folgende alert-Ausgabe:
Objekt: [object Object]
empstring
startstring
infostring
...

usw. für "text[''] im Skript.

gruß Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 14:11 Uhr von wahsaga veröffentlicht.

hi,

> Wenn ich diese Funktion in das Skript einbaue bekomme ich folgende alert-Ausgabe:
> Objekt: [object Object]
> empstring
> startstring
> infostring

Gut, da scheinen die Eigenschaften ja vorhanden zu sein.

Aber hast du diese Kontrollausgabe jetzt auch wirklich _in_ der Funktion zeigetext() gemacht?

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 14:33 Uhr von Compiwurstel veröffentlicht.

Hallo Struppi, hallo Wahsaga,

da hatte ich wohl einen Fehler gemacht, weiß aber nicht, ob ich es jetzt richtig verstanden habe. Deshalb in kleinen Schritten:

Ich habe diesen Teil in das Skript eingefügt:

function debugObj(o)
{
   var t = 'Objekt: ' + o;
   for(var a in o)
   t += '\n' + a + ( typeof o[a] == 'String' ? o[a] : typeof o[a]);
   alert(t);
}

Und den Aufruf so ergänzt:

<a href="../../index.php" onmouseover="tauschen(document.st, '../../layout/pics/pix/dorange.gif'); zeigetext(this.id); debugObj(text)" id="start" onmouseout="tauschen(document.st, '../../layout/pics/pix/dviolet.gif'); zeigetext('emp')">STARTSEITE</a>

Wenn ich nun eine Seite aufrufe, in der "loadtxt()" nicht geladen wird, dann bekomme ich dieselbe alert-Meldung wie oben aufgeführt,
also:

Objekt: [object Object]
empstring
startstring
...

Wenn ich eine Seite aufrufe, in der "loadtxt()" geladen wird (über: windows.onload = function() { loadtxt('ip01a'); } ), dann lautet die alert-Meldung beim mouseover über obigen link analog:

Objekt: [object Object]
ip01astring
ip01bstring
usw.

Gruß Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 14:59 Uhr von wahsaga veröffentlicht.

hi,

> Und den Aufruf so ergänzt:
>
> <a href="../../index.php" onmouseover="tauschen(document.st, '../../layout/pics/pix/dorange.gif'); zeigetext(this.id); debugObj(text)"

Baue bitte debugObj(text) _in_ die Funktion zeigetext ein.

> Wenn ich nun eine Seite aufrufe, in der "loadtxt()" nicht geladen wird, dann bekomme ich dieselbe alert-Meldung wie oben aufgeführt,
> also:
>
> Objekt: [object Object]
> empstring
> startstring
> ...

Also hat das Objekt text hier Eigenschaften mit Namen emp, string, ...

> Wenn ich eine Seite aufrufe, in der "loadtxt()" geladen wird (über: windows.onload = function() { loadtxt('ip01a'); } ), dann lautet die alert-Meldung beim mouseover über obigen link analog:
>
> Objekt: [object Object]
> ip01astring
> ip01bstring
> usw.

Also hat das Objekt text hier Eigenschaften mit Namen ip01a, ip01b, ...


Vermutlich überschreibst du dir dein Objekt text mit dem neuen Script einfach.

Ändere doch mal eins von den Scripten so ab, dass du dort statt text ein Objekt text2 initialisierst und benutzt.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 15:21 Uhr von Compiwurstel veröffentlicht.

Hallo Wahrsaga,

> Ändere doch mal eins von den Scripten so ab, dass du dort statt text ein Objekt text2 initialisierst und benutzt.

Jopp, das war's!!!! Jetzt funzt alles so wie es soll! Danke dir und Struppi vielmals!

Wenn du mir noch einen Gefallen tun willst:
Wie hätte ich denn "debugObj(text) _in_ die Funktion zeigetext" einbauen müssen? Das weiß ich nämlich nicht und vielleicht kann ich es in anderem Zusammenhang mal gut brauchen und muss dannnciht im Forum rumnerven!

Viele Grüße
Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 15:25 Uhr von Struppi veröffentlicht.

> Wenn du mir noch einen Gefallen tun willst:
> Wie hätte ich denn "debugObj(text) _in_ die Funktion zeigetext" einbauen müssen? Das weiß ich nämlich nicht und vielleicht kann ich es in anderem Zusammenhang mal gut brauchen und muss dannnciht im Forum rumnerven!

Naja, genauso wie du mein alert() eingebaut hast.

function loadtext(id)
{
debugObj(text);
....
}

Struppi.
--
Javascript ist toll (Perl auch!)

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 15:38 Uhr von Compiwurstel veröffentlicht.

Hallo Struppi,

> Naja, genauso wie du mein alert() eingebaut hast.
>
> function loadtext(id)
> {
> debugObj(text);
> ....
> }

alles klar, dann hatte ich auch das falsch verstanden - wie gesagt: ist nicht 100% mein Tag heute (Wetter-Kreislauf-Hirn...).

Vielen Dank nochmal
und wenigstens euch einen schönen Tag!

Gruß Compiwurstel

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 14:14 Uhr von Struppi veröffentlicht.

> Wenn ich diese Funktion in das Skript einbaue bekomme ich folgende alert-Ausgabe:

nicht irgendwo in das Skript, sondern in die Funktion wo du den Text ausgeben willst.

Struppi.
--
Javascript ist toll (Perl auch!)

Fehlermeldung: undefined

Der folgende Beitrag wurde am 05. 12. 2006, 11:29 Uhr von Struppi veröffentlicht.

> ich habe folgendes Skript:
>
> var text= new Object();
>
> text['ip01a'] = "Hier steht der erste Text";
> text['ip01b'] = "Hier steht der zweite Text";
> text['ip01c'] = "Hier steht der dritte Text";
> text['ip01d'] = "Hier steht der vierte Text";
> text['ip01e'] = "Hier steht der fünfte Text";
>
> function loadtxt(txt) {
> document.getElementById("subline").innerHTML = text[txt];
> }

sieht einwandfrei aus.

> Die Texte sollen in das folgende div geladen werden:
>
> <div id="subline">&nbsp;</div>
>
> Der Aufruf erfolgt wie folgt:
>
> <a href="javascript:loadtxt(this.id)" id="ip01a">Link</a>
>
> An anderer Stelle funktioniert das Skript einwandfrei, nur hier bekomme ich in dem div an Stelle des Textes die Ausgabe "undefined".

Hast du dir die Werte mal ausgeben lassen?
function loadtxt(txt) {
alert(text + '\n' + txt + '=' + text[txt] );
}

Struppi.
--
Javascript ist toll (Perl auch!)

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4