Div ansprechen in netscape6

hallo zusammen!

ist eine kurze frage (auch wenn der text etwas lang aussieht):
ich habe eine kleine animation in einem angesiedelt. das läuft für die älteren browser auch bestens, nur für netscape6/mozilla krieg den weg ums verrecken nicht zustande.

so sieht das aus:

function animation(bildnr)
{
  if (bildnr>4) bildnr=0;
   if (IE)
   {
  erstens.document.images[‚dasBild‘].src=dieBilder[bildnr];
   window.setTimeout (‚animation (‘+(bildnr+1)+’)’, 1000);
}
   if (NN4)
   {
   document.   erstens.document.dasBild.src=dieBilder[bildnr];
   window.setTimeout (‚animation (‘+(bildnr+1)+’)’, 1000);
}
   if (NN6)
   {
  erstens.document.getElementsByName(„dasBild“).src=dieBilder[bildnr];
window.setTimeout (‚animation (‘+(bildnr+1)+’)’, 1000);
   }

  }

kann mir zufällig jemand kurz sagen, wie ich den layer hier korrekt anspreche?
wäre riesig nett… :wink:

gruß & dank
bernd

Hallo,

nur das Document-Model des ns4 ist verschieben von den anderen Browsern und muss via Sub-Documents angesprochen werden. Das hast Du richtig gemacht fuer den ns4. Für die anderen Browser ist die images-Collection ausnahmsweise losgeloest von der restlichen DOM-Struktur und images koennen immer direkt angesprochen werden, ohne ueber die Unterdokumente zu gehen. D.h. folgendes:

  • Fuer den NN6 gilt das gleiche wie fuer den IE beim Zugriff auf das Image!
    -> window.document.images[‚dasBild‘].src=dieBilder[bildnr]; wenn dieBilder ein Array aus Strings ist.
    -> window.document.images[‚dasBild‘].src=dieBilder[bildnr].src; wenn dieBilder ein Array aus Images ist.

  • Wenn dann heisst es immer window.document.getElementsByName() wie bei getElementById() -> also DIREKTER Zugriff auf das Element!

  • Lesen ist angesagt: getElementsByName() is PLURAL (Elements und nicht ELement) und gibt alle Elemente des Dokumentes mit dem angegeben Name in einem Array zurueck…klaro
    -> wenn dann getElementsByName(„Name“)[zerobaseIndex]…

Cu

fast
hi vir2,
weia- das war mal wieder recht einfach. hätt ich eigentlich auch selber raten können, wenn ich den wald vor lauter bäumen noch gesehen hätte ;-}

  • Fuer den NN6 gilt das gleiche wie fuer den IE beim Zugriff
    auf das Image!

nicht ganz:
der IE hätte gerne
divName.document.images[‚dasBild‘].src=dieBilder[bildnr];

während du mit NN6 (der offensichtlich die allgemeine variante bevorzugt) völlig recht hast:

-> window.document.images[‚dasBild‘].src=dieBilder[bildnr];

das war’s.
(verstehen tu ich das nicht wirklich, aber solange es funkt…)

besten dank
bernd

Hallo,

nun gut, Hautsache es funktioniert. Zur Sicherheit habe ich es selber nochmal getestet und ich sage, es geht auch so wie ich es fuer den IE zuvor gesagt habe. Beides geht:

var imgObj = null;

imgObj = window.document.all[„erstens“].document.images[„dasBild“].src;
2)
imgObj = window.document.images[„dasBild“].src;

Auch wenn das Image in einer Division mit position:absolute; steht, so ist es nach dem allgemeinen DOM nicht mehr als Subdocument wie im Netscape4 DOM zu betrachten.

Beides fuehrt im IE gleichermassen zum Ziel. Da muss wohl was anderes bei Dir schief gelaufen sein. Der Grund fuer den Direktzugriff nach 2) ist folgender:

Es erleichtert den Zugriff auf Images im allgemeinen browseruebergreifend, weil dies in Skripten sehr häufig auftritt, obwohl 1) nach DOM-Philosophie konsistenter waere. Eine Analogie gilt fuer „innerHTML“, was IE proprietär ist und trotzdem fuer den Netscape6 eingefuehrt wurde, um den Zugriff zu erleichtern und die Skripte somit auch einfach an IE und NN6 gleichemassen laufen zu lassen. Manchmal ist eine Aufweichung strenger theoretischer Hierarchien in der Praxis doch ganz nuetzlich.

Cu

you name it
hallo-
THX für die gründliche erklärung- war hilfreich.

ansonsten ist das genau meine rede:

Manchmal ist eine
Aufweichung strenger theoretischer Hierarchien in der Praxis
doch ganz nuetzlich.

bin da vielleicht etwas zu pragmatistisch, aber für theoretische reinheit kann man sich halt oftmals nix kaufen :wink:
die alte heimwerker-devise: schraube nicht an sachen rum, die funktionieren…
in diesem sinne

greetings
bernd