Christian S.: 3 Fragen zu document.body und DOM

Hi,

habe 3 Fragen:

1. Frage:

ich frage mich gerade, ob document.body ein verlässliches Objekt ist, d.h. ob es vielleich standard ist oder es jeder moderne Browser kennt!?

Oder sollte ich lieber den body so bekommen:

document.getElementsByTagName("body")[0]

das sollte ja auf jeden Fall gehen.

2. Frage:

wenn ich ein Element per document.createElement erzeuge. Wird dann IMMER auch das style Objekt mit erzeugt. Ich kann zwar direkt nach dem Erzeugen auf das style objekt zugreifen (mit FF) und zb. sagen obj.style.backgroundColor = ...
aber eigentlich hätte ich gedacht man müsse erst noch das style objekt zuweisen, da es sonst so eine null-Exception gibt.

3. Frage:
macht

var img = new Image();

und

var img = document.createElement("img");

dasselbe?
zumindest kann ich auch ersteres mit DOM Methoden in ein anderes Objekt einhängen. Ich sehe da keinen Unterschied, aber vielleicht gibts ja doch einen..?!

Vielen Danke,
Gruß
Christian

  1. Hi,

    ich frage mich gerade, ob document.body ein verlässliches Objekt ist, d.h. ob es vielleich standard ist oder es jeder moderne Browser kennt!?

    nein, dieses Objekt ist allenfalls üblich.

    wenn ich ein Element per document.createElement erzeuge. Wird dann IMMER auch das style Objekt mit erzeugt.

    Die Antwort auf diese Frage ist bereits durch CSS gegeben: Jedes Element verfügt zu jedem Zeitpunkt über jede CSS-Eigenschaft. Da diese bei DOM-Nodes durch eine style-Collection repräsentiert werden, muss sie vorhanden sein.

    macht
    var img = new Image();
    und
    var img = document.createElement("img");
    dasselbe?

    Nein. Ein Image()-Objekt ist ein Objekt, welches Größenangaben aufnehmen kann und dessen übliche Implementierung bewirkt, dass beim Zuweisen einer src-Eigenschaft vom Browser eine Ressource angefordert wird. Ein document.createElement("img") erzeugt eine DOM-Node mit nodeName="img".

    zumindest kann ich auch ersteres mit DOM Methoden in ein anderes Objekt einhängen.

    Ehrlich? Das hätte ich nicht erwartet, und ich würde mich darauf auch nicht verlassen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      zumindest kann ich auch ersteres mit DOM Methoden in ein anderes Objekt einhängen.

      Ehrlich? Das hätte ich nicht erwartet, und ich würde mich darauf auch nicht verlassen.

      ja... ich kann auch die Breite des Bildes aus einem DOM Objekt rauslesen...

      var img = document.createElement("img");
      img.src = "img.gif";
      alert(img.width);

      Gruß
      Christian

    2. Hallo Cheatah

      ich frage mich gerade, ob document.body ein verlässliches Objekt ist, d.h. ob es vielleich standard ist oder es jeder moderne Browser kennt!?

      nein, dieses Objekt ist allenfalls üblich.

      Es ist lediglich üblich?
      DOM-Level-1 Interface HTMLBodyElement
      MSDN Object Model References BODY Element

      Auf Wiederlesen
      Detlef

      --
      - Wissen ist gut
      - Können ist besser
      - aber das Beste und Interessanteste ist der Weg dahin!