Hobbes: image in layer

Hallo liebe Forumsleute,
die ihr alle so froh seid wie ich, dass das Forum wieder offen ist.

Ich hab letztens in einem fremden Script was gefunden, das verdammt praktisch ist: bisher
musste man ja Bilder die in layern liegen sehr umständlich referenzieren, da jeder layer ein eigenes
document besitzt;
also etwa für
<layer name="L1"><layer name="L2"><img src="einbild.gif" name="Bild"></layer></layer>
musste man
document.layers["L1"].document.layers["L2"].document.images["Bild"].src
für einen Rollover nehmen!

Es funktioniert aber auch document["Bild"].src !!!!!

Viel Vergnügen an alle Forumsfreunde !

Liebe Grüße, Hobbes (aka Til).

  1. Hi

    Es funktioniert aber auch document["Bild"].src !!!!!

    Kurze Erklaerung:
    Es gibt mehrere Moeglichkeiten, die voellig gleichwertig sind:
    1. document.Bildname.src
    2. document.images["Bildname"].src
    3. document.images[Nr].src  
    4. document["Bildname"]
    wenn man noch definiert:
    var Bildvariable="Bildname";
    kann man auch noch schreiben:
    5. document.images[Bildvariable].src
    6 document[Bildvariable].src
    Das funktioniert aber alles!! nicht fuer Bilder in layern. Auch dein Beispiel nicht !
    Tschau Holger

    1. Lieber Holger,
      es funktioniert doch, das ist ja das verblüffende. Ich bin kein Anfänger, dem Du erklären musst
      wie man Bilder referenziert. Danke.

      Ich bin allerdings draufgekommen, dass es offensichtlich nur dann funktioniert, wenn man den
      code per document.write in den body schreibt:

      <html>
      <head>
      <script language="javascript" type="text/javascript">
      <!--
      var neu=new Image();neu.src="img/logo.gif";

      function neuesBild() {document['logo'].src=neu.src}
      //-->
      </script>
      </head>

      <body>
      <script language="javascript" type="text/javascript">
      document.write("<layer name='L1' width=84 height=28 left=200 top=200 bgColor=red visibility='show'>");
      document.write("<IMG name='logo' src='img/nix.gif' border=1 width=84 height=28>");
      document.write("</layer>");
      </script>
      <br><br><br><br><br>
      <A href="javascript:neuesBild();">neu</A>
      </body>

      </html>

      Probiers aus!
      Verschiedene NS-Versionen hab ich nicht getestet. Meine NS-Version: 4.73 auf NT4

      lg Hobbes
      <img src="http://server.datenwerk.at/~til/img/hobbes.gif" alt="">

      1. Hi Hobbes
        Ich habs mal mit NS 4.03 getestet: Funktioniert!
        Was ich ueberhaupt nicht verstehe ist, warum das so funktioniert?? Hast du (oder jemand anderes) darauf eine Antwort??
        Tschau Calvin äh Holger

        1. Hi Holger,
          ich bin froh, dass es bei Dir auch funktioniert und ich nicht einem nichtreproduzierbaren
          bug aufgesessen bin.
          Warum es so ist? Ich hab nicht die geringste Ahnung!