[JS+Prototype] IE und onLoad bei gecachten Bildern

burnred

Powerhamster
ID: 34739
L
4 Mai 2006
685
41
Code:
function loadFotoLayer(pic)
{
    var fotolayer = document.createElement("DIV");
    fotolayer.id = "fotolayer";
    fotolayer.className = "vistalayer";
    var update = new Ajax.Updater(fotolayer,"ajaxloader.php?id=fotoview&pic="+pic,
                {
                    method: 'GET',
                    onComplete: function()
                    {
                        $('fotolayer_pic').onclick = hideFotoLayer;
                        
                        alert($('fotolayer_pic').complete);
                        if(Prototype.Browser.IE && $('fotolayer_pic').complete)
                            showFotoLayer();
                        $('fotolayer_pic').onload = showFotoLayer;
                    }
                });
    var doc = document.body;
    doc.appendChild(fotolayer);
}
function showFotoLayer()
{
    alert('picture Onload');
    $('fotolayer').style.display = 'block';
    centerFotoLayer();
    
}
Im Firefox geht das einwandfrei und der läuft immer bis showFotoLayer() durch, nur der IE macht das nur beim ersten Klick auf das Bild. Sobald das einmal im Cache ist löst er kein onLoad mehr aus. Das ist aber ansich nicht das Problem sondern das er schon vor der Weiche die halt beim IE das complete abfragt rausfliegt und mir nichtmal den Alert bringt.

p.s. Es ist Prototype!

Edit: Beim Zweiten Aufruf bekomm ich beim $('fotolayer_pic') nur NULL zurück obwohl der das Bild im responseText enthalten ist.
 
Zuletzt bearbeitet:
So das Problem ist vorerst mit einem Workaround gelöst. Einfach eine sinnlose Zeichenkette an den Request angehängt damit den der IE nicht aus dem Cache lädt. Wüsste trotzdem mal gerne wie ich ohne die Aktion auskomme, weil gegen das Cachen hab ich an sich nichts, da sich ja nichts geändert hat.