Christine Kuehnel: Bilder «DIV» und Javascript im Communicator

Beitrag lesen

Hallo,

Ist natuerlich nicht so. Selbstverstaendlich kann Netscape auch mit dem DIV Tag umgehen.

Stimmt.

Ganz so einfach ist es natuerlich nicht eine BIld anzusprechen, wenn es in einem DIV
steckt.

Nein, leider muss man fuer Navi und MSIE verschiedende Wege gehen.
Das OM von Netscape ist anders aufgebaut als das von MSIE.
Fuer MSIE  kann man so etwas schreiben, egal wie tief in irgendwelchen DIVs oder sonstwas das Image-Objekt steckt:
   document.images['das_Bild'].src = "../bilder/dk_k.gif";
Es gibt nur 1x document.
Netscape hat sich einfallen lassen, jedem Layer-Objekt eine eigene document-Eigenschaft zuzuordnen.
Layer-Objekt bitte nicht verwechseln mit den netscapespezifischen Layern (LAYER-Tag).
Neben denen definieren auch Styles (z.B. mit DIV) Layer-Objekte.
So etwas etwa:
   #irgendwas {position:absolute;  top:300px; left:100px;  ... }
...
   <DIV ID="irgendwas">
   hier steht halt was drin, evtl. so ein Bild
   <IMG ... NAME="das_Bild" ...>
   </DIV>
...
Damit entsteht ein Layerobjekt document.layers['irgendwas'] mit einer eigenen document-Eigenschaft, der dann endlich das Image-Objekt zugeordnet ist.
Zu theoretisch?
Eine der Moeglichkeiten, es anzusprechen:
window.document.layers['irgendwas'].document.images['das_Bild'].src =  "../bilder/dk_k.gif"; (hoffentlich nicht vertippt)

Um diese Unterscheiderei der Browser fuehrt im Moment kein Weg herum.
Mann kann sich einiges vereinfachen, wenn es um komplexere Scripts geht, indem man sich browserabhaengig eigene Objekte definiert, da dann universell nutzbar sind. Damit wird es etwas einfacher. Was bleibt, ist allerdings trotzdem Aufwand, den man betreiben muss, auch wenn nur dazu da, sich an anderer Stelle die Geschichte zu vereinfachen.
Wie lange  wir noch damit leben muessen?
Ich fuerchte, es dauert noch. Working Draft zur DOM-Spezifikation liegt zumindest schon mal vor http://www.w3.org/TR/WD-DOM/. Aber von da bis zu Browsern, die dann endlich ein einheitliches OM benutzen, ist noch ein Stueck Weg.

Christine