Uwe Prenner: Hilfe bei Fehlermeldung Objekt

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

  1. 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

    1. 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

      1. 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

        1. Hallo Jörg,
          Danke für deine Hilfe, hat mir sehr weitergeholfen.

          Gruß Uwe

  2. 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

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. (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

      1. (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.

        --
        Javascript ist toll (Perl auch!)
      2. 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

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. 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