Problem mit NC und document.images.length
mormel
- javascript
0 Martin Jung0 Cyx23
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
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
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
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
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
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
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
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
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
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
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
Hi!
Danke für Deine Hilfe. So einfach wie ich mir das dachte geht das anscheinend nicht. Schade.
bye mormel