"Bei einer Homepage, an der ich gerade arbeite (www.galeriemichaelschulz.de), tritt ein äußerst interessanter Effekt mit IE5 auf.
Ich verwende eine preLoad-Funktion mit Prozentbalken, die folgendermaßen funktioniert:
function preLoad() {
puzzle1 = new Image();
puzzle1.onload = check;
puzzle1.src = "images/puzzle/puzzle1a.gif";
.
.
.
if(is.ns) {
doc = "document";
sty = "";
htm = ".document"
} else if(is.ie) {
doc = "document.all";
sty = ".style";
htm = ""
}
var count = 0;
function hide() {
var status = eval(doc + '["msgLyr"]' + sty);
status.visibility = "hidden";
}
function check() {
count++;
if(count == 28) {
setTimeout("initialize()", 100); //sorgt für Bewegung
setTimeout("hide()", 200); //blendet den Prozentbalken aus
}
else {
var status = eval(doc + '["msgLyr"]' + htm);
var msg = "'<TABLE id=pre BORDER=0 CELLSPACING=0 CELLPADDING=2 WIDTH=200><TR><TD WIDTH=' + Math.round((count/28)*100) + '% BGCOLOR=#FF0000 ALIGN=RIGHT>' + Math.round((count/28)*100) + '%' +'</TD><TD BGCOLOR=#800000 VALIGN=MIDDLE> </TD></TR><TR><TD COLSPAN=2 ALIGN=CENTER>Percent Images Loaded</TD></TR></TABLE>'";
if(is.ns) {
status.write(msg);
status.close();
} else if(is.ie) {
status.innerHTML = msg;
}
}
}
mit onLoad="preload" im body-tag und weiter mit:
winW = (is.ns)? window.innerWidth : document.body.offsetWidth
winH = (is.ns)? window.innerHeight : document.body.offsetHeight
writeCSS(css('msgLyr',0,0,winW,winH)) //schreibt css (wie der Name schon sagt)
<DIV ID="msgLyr" STYLE="position:absolute; z-index:100; visibility: visible; background-color: #000000; layer-background-color: #000000;">
<TABLE ID="pre" BORDER="0" CELLSPACING="0" CELLPADDING="2" WIDTH="200">
<TR>
<TD BGCOLOR="#800000"><FONT COLOR="#ffffff">Loading Page...</FONT>
</TR>
</TABLE>
</DIV>
Mit NS in allen Versionen funzt das wunderbar. Mit IE passiert das:
Beim ersten Aufruf werden zwar die 28 Grafiken geladen aber der Prozentbalken bewegt sich nicht.
Wenn man dann auf "Aktualisieren" klickt, werden wieder alle 28 Grafiken geladen (der Prozentbalken schweigt) und dann (Achtung jetzt kommt's!) werden die Grafiken noch ein zweites mal geladen, und diesmal wandert auch der Prozentbalken."
Ich hatte diese Anfrage vor einigen Tagen gepostet (leider ohne Antwort).
Inzwischen habe ich folgendes festgestellt:
1. Bei meiner lokal gespeicherten Version funzt alles (habe extra ein paar größere Dateien genommen, daß der Ladevorgang langsamer wird).
2. Sobald ich den ganzen Mist auf den Server lade - wieder das gleiche.
3. Die Log-Files sagen dazu folgendes:
erster Aufruf - Code 200 (also alles OK)
"Aktualisieren" - Code 304
Ich bin absolut ratlos!