Hilfe bei Fehlermeldung Objekt
Uwe Prenner
- javascript
0 Jörg Peschke0 MudGuard0 Uwe Prenner
Hallo,
bin im Moment am verzweifeln, weil ich nicht mehr weiter weiß.
habe in Javascript eine Funktion geschrieben die über einen
Mausklick aktiviert wird, das Funktioniert auch alles soweit.
Jetzt möchte ich das die Funktion beim ersten Aufruf der Seite
schon einmal ausgeführt wird, aber hier bekomme ich immer die Fehler Meldung "Objekt erwartet". Ich habe aber ein Objekt erstellt!!!!
Die Funktion heißt Rent() und wird Normalerweise über einen Klick aufgerufen
id="20070611id" onclick="Rent(this);
wie gesagt das Funktioniert
im Objekt befindet sich dann die Variable "id" mit dem Wert "20070611id"
Nun möchte ich die Funktion direkt aufrufen und erzeuge ein Objekt
function Datum()
{
this.id = '';
}
obj1 = new Datum();
obj1.id='20070205id';
und Bekomme dann wenn ich
Rent(obj1);
aufrufe die Fehlermeldung.
Bin für jede Hilfe dankbar
Gruß Uwe
Hallo,aber hier bekomme ich immer die Fehler Meldung "Objekt erwartet".
Testest du mit dem IE? Nimm lieber Firefox, die JavaScript-Konsole dort ist deutlich aussagekräftiger.
Ich habe aber ein Objekt erstellt!!!!
Ja, aber nur *Irgendein* Objekt.
Deinen Ausführungen entnehme ich, dass Rent aber eigentlich ein Node-Objekt benötigt (onclick=Rent(this);)
-> Ich weiss nicht, was Deine Rent-Funktion genau tut, aber falls sie für irgendetwas eine Eigenschaft eines Nodes AUSSER der ID braucht (denn eine ID hat ja obj1 auch), dann kracht's.
Möglicherweise suchst du ja sowas:
<body onload="Rent(document.getElementById('20070611id'))">
In diesem fall solltest Du aber sicherstellen, dass das HTML-Element mit der ID '20070611id' wirklich in der HTML-Seite existiert.
Viele Grüße,
Jörg
Möglicherweise suchst du ja sowas:
<body onload="Rent(document.getElementById('20070611id'))">
Danke Jörg,
das hat mir sehr weiter geholfen, weisst Du zufälliger weise
wie man ein Node-Objekt ausgeben kann, so das man die komplette
Baumstrukur mit nodeName und nodeValue angezeigt bekommt?
Gruß Uwe
Tag,
weisst Du zufälliger weise
wie man ein Node-Objekt ausgeben kann, so das man die komplette
Baumstrukur mit nodeName und nodeValue angezeigt bekommt?
Hm, denkbar wäre hierfür z.b. folgende Funktion:
function printNode (node, outputNode) {
var html = "<table>";
for (var prop in node) {
html += "<tr>";
html += "<td>"+prop+"</td>"+node[prop]+"</td></tr>";
}
html += "</table>";
outputNode.innerHTML = html;
}
Das ding würde Dir eine HTML-Tabelle mit allen Eigenschaften des Node-Objektes erzeugen und in ein gewünschtes HTML-Element einbinden.
(Falls er auch die Unter-Objekte (also Kindknoten) anzeigen soll, wirds komplexer, dann müsste man das rekursiv machen.)
Aufruf:
printNode (document.getElementById("Node_zum_Drucken_ID"), document.getElementById("DIV_Zum_Ausgeben_ID"));
Grüße,
Jörg
Hallo Jörg,
Danke für deine Hilfe, hat mir sehr weitergeholfen.
Gruß Uwe
Hi,
id="20070611id" onclick="Rent(this);
wie gesagt das Funktioniert
zufällig - trotz der unzulässigen id (id-Werte dürfen nicht mit Ziffern beginnen).
Nun möchte ich die Funktion direkt aufrufen und erzeuge ein Objekt
und Bekomme dann wenn ich
aufrufe die Fehlermeldung.
Auch mit einer zulässigen id?
cu,
Andreas
(id-Werte dürfen nicht mit Ziffern beginnen).
Hi,
wo steht denn das geschrieben?
Die Fehlermeldung habe ich erst erhalten nachdem ich versucht hatte ein Objekt zu erstellen und die Funktion direkt aufzurufen.
Vorher per Onklick() Aufruf war alles O.K.
Danke für deine Antwort Uwe
(id-Werte dürfen nicht mit Ziffern beginnen).
Hi,
wo steht denn das geschrieben?
z.b. in selfhtml http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name
Struppi.
Hi,
(id-Werte dürfen nicht mit Ziffern beginnen).
wo steht denn das geschrieben?
Natürlich da, wo HTML definiert wird: http://www.w3.org/TR/html4/types.html#type-name
Die Fehlermeldung habe ich erst erhalten nachdem ich versucht hatte ein Objekt zu erstellen und die Funktion direkt aufzurufen.
Vorher per Onklick() Aufruf war alles O.K.
Dein fehlerhafter Code wurde also unter gewissen Randbedingungen mehr oder weniger zufällig in Deinem Sinne interpretiert.
Jetzt hast Du die Randbedingungen verändert (id-Attributwert wird per Javascript gesetzt statt per HTML-Sourcecode). Und da sind die Browser vielleicht weniger fehlertolerant.
cu,
Andreas
Hallo Andreas,
Natürlich da, wo HTML definiert wird: http://www.w3.org/TR/html4/types.html#type-name
Na super jetzt kann ich mir meinen eigen Spruch rein würgen,
"Wer lesen kann ist klar im Vorteil"
Dein fehlerhafter Code wurde also unter gewissen Randbedingungen mehr oder weniger zufällig in Deinem Sinne interpretiert.
Jetzt hast Du die Randbedingungen verändert (id-Attributwert wird per Javascript gesetzt statt per HTML-Sourcecode). Und da sind die Browser vielleicht weniger fehlertolerant.
Arbeite mit dem IE7, werde mal entsprechende Änderungen vornehmen
mal sehen was passiert.
Danke Uwe