mormel: Problem mit NC und document.images.length

Hi all!

Ich möchte gerne auf einer Seite die Anzahl der Grafiken ermitteln.

Die Grafiken befinden sich innerhalb von <div id="grafiken" style="position:absolute;visibility:hidden"></div>. Wenn ich jetzt per alert document.layers["grafiken"].document.images.length ausgeben lasse, erhalte ich die Fehlermeldung 'document.layers.grafiken has no properties'. Am visibility:hidden kanns auch nicht liegen, ist mit visible genau das Gleiche.

Wer kann mir da helfen?

Vielen Dank im Vorraus
mormel

  1. Hi,

    Am visibility:hidden kanns auch nicht liegen, ist mit visible genau das Gleiche.

    Doch: heißt bei Netscape "visibilty:show/hide;"

    Grüße,
    Martin

    1. Hi

      Doch: heißt bei Netscape "visibilty:show/hide;"

      Danke. Wieso kann ich dann aber auch mit visible/hidden im NC Layer ein und ausblenden?

      mormel

      1. Danke. Wieso kann ich dann aber auch mit visible/hidden im NC Layer ein und ausblenden?

        Diese Frage musst Du an die Entwickler richten.

        Grüße,
        Martin

    2. Hi

      Doch: heißt bei Netscape "visibilty:show/hide;"

      Da hab ich mich vorhin bedankt, ohne zu testen - immer noch die gleiche Fehlermeldung mit show und auch mit hide. Weiß wer Rat??

      mormel

    3. Hallo,

      es ist ein Unterschied ob html oder styleanaben gemacht werden.
      Hier soll ja kein html <layer visibility=show> benutzt werden
      sondern ein div mit style/css angesprochen werden, das dann
      insoweit netscapespezifisch erfolgen muss als im <div> ein neues
      document vorliegt wie bei den alten Layern.
      Es heisst dann bei Netscape vollkommen richtig visibility:hidden.

      mfg

      Cyx23

  2. Hi auch !

    Die Grafiken befinden sich innerhalb von <div id="grafiken" style="position:absolute;visibility:hidden"></div>. Wenn ich jetzt per alert document.layers["grafiken"].document.images.length ausgeben lasse, erhalte ich die Fehlermeldung 'document.layers.grafiken has no properties'. Am visibility:hidden kanns auch nicht liegen, ist mit visible genau das Gleiche.

    probier mal

    <div id="grafiken" style="position:absolute;visibility:hidden">
    blindtext
    </div>
    <a href="javascript:alert(document.grafiken.document.images.length)">wieviel</a>

    da kriege ich richtig eine 0 angezeigt

    Grüsse

    Cyx23

    1. Hi!

      <div id="grafiken" style="position:absolute;visibility:hidden">
      blindtext
      </div>
      <a href="javascript:alert(document.grafiken.document.images.length)">wieviel</a>

      da kriege ich richtig eine 0 angezeigt

      Am Ende des Dokumentes(per onLoad) bekomme ich die Anzahl richtig angezeigt. Mein Problem dabei ist ich bräuchte die Anzahl bereits während des Ladens, das es eine Image-Preload-Seite werden soll.

      Trotzdem Danke
      mormel

      1. Hi!

        Am Ende des Dokumentes(per onLoad) bekomme ich die Anzahl richtig angezeigt.

        das war ja zunächst das was du wolltest.

        Mein Problem dabei ist ich bräuchte die Anzahl bereits während des Ladens, das es eine Image-Preload-Seite werden soll.

        du willst wohl nicht das perpetuum mobile erfinden, also die
        images der Seite sind ja erst solche wenn in der Seite beschrieben.

        Worum geht es denn, was willst du mit der Anzahl machen und
        warum ist z.B. onload zu spät ?
        Mit onload kannst du ja immer noch per function sowas wie new image()
        erzeugen.

        Grüsse

        Cyx23

        1. Hi again!

          ich bräuchte die Anzahl bereits während des Ladens, da es eine Image-Preload-Seite werden soll.

          Worum geht es denn, was willst du mit der Anzahl machen und
          warum ist z.B. onload zu spät ?

          s.o.

          das Ganze möcht ich in einer for-Schleife realisieren,
          innerhalb derer dann abfragen, ob die Grafik geladen ist
          und den entsprechenden Ladestand ausgeben, etwa so:

          for (i=0;i<document.grafiken.document.images.lenght;i++)
            {
              if(document.grafiken.document.images[i].complete == true)
              {
                // für IE entsprechend mit innerHtml
                output = i+" von "+document.grafiken.document.images.lenght+" Grafiken geladen";
                document.pc.document.open();
                document.pc.document.write(output);
                document.pc.document.close();
              }
            }

          bye mormel

          1. Hallo,

            du könntest am Seitenanfang ein timeout oder interval benutzen
            um wiederholt die Menge der images abzufragen und laufend
            erstmal die Zahl der images abfragen und dann diese Anzahl
            oder den Ladezustand zu dieser Anzahl auswerten und melden.
            Z.B. mit onload dann den interval schliessen.

            Vmtl. laden die Browser die Bilder teilweise parallel.
            Dann müsstest du erstmall leer-gifs einbauen und die
            einzeln nach und nach ersetzen, etwas umständlich.

            Grüsse

            Cyx23

            1. Hi!

              Danke für Deine Hilfe. So einfach wie ich mir das dachte geht das anscheinend nicht. Schade.

              bye mormel