UltiSalamander
Lieutenant
- Registriert
- März 2010
- Beiträge
- 536
Hallo zusammen.
Ich habe folgendes Problem. Dieser Teil meines Quellcodes bzw. diese Funktion funktioniert tadellos in Firefox und Chrome, jedoch nicht im Internet Explorer 9.
Sie soll dabei beim Laden des Seiteninhalts via Ajax ein Overlay einblenden und nach dem Laden wieder ausblenden. Doch beim Internet Explorer gibt es folgendes kuriose Problem. Innerhalb der success Funktion führt der Internet Explorer nur einen Teil aus!
Das heißt: Setze ich die Zeile mit dem Aufruf von unlockscreen() an den Anfang der Funktion, wird das Overlay ausgeblendet.
Setze ich hingegen das if/else Konstrukt an den Anfang, bleibt dies weiter bestehen (nachweislich wird die Funktion unlockscreen() nicht aufgerufen). Eine Animation wird in beiden Fällen nicht angezeigt.
Das Kuriose jedoch: Öffne ich die Entwicklertools (F12) und rufe die Seite erneut auf, funktioniert alles kompromisslos!
Was kann ich tun dass dieses Problem nicht weiter auftritt?
Ich habe folgendes Problem. Dieser Teil meines Quellcodes bzw. diese Funktion funktioniert tadellos in Firefox und Chrome, jedoch nicht im Internet Explorer 9.
Code:
function lockscreen()
{
$("body").append('<div style="position:fixed;height:auto;width:auto;top:0;bottom:0;left:0;right:0;background: no-repeat url(./ajax-loader.gif) 5px 5px ;opacity:0.6;z-index:11101;" id="page-overlay"></div>');
}
function unlockscreen()
{
if($("#page-overlay").length > 0) $("#page-overlay").remove();
}
function loadajax(url, data, id, callback, lock)
{
if(lock === undefined || lock === true) lockscreen();
$.ajax({
url: url,
type: "POST",
data: data,
dataType: "html",
success: function(data)
{
if(data===null)
{
msgbox.displayMessage("Interner Fehler");
}
else if(id!==undefined)
{
$(id).html(data+"").css("opacity", "0").animate({opacity: 1}, 300);
}
if(lock === undefined || lock === true) unlockscreen();
if(callback!=undefined)
{
window.setTimeout(callback,0);
}
},
error: function(jqXHR, textStatus, errorThrown)
{
/*msgbox.displayMessage("Interner Fehler "+errorThrown);*/
$(id).html("not found").css("opacity", "0").animate({opacity: 1}, 300);
if(lock === undefined || lock === true) unlockscreen();
}
});
}
Das heißt: Setze ich die Zeile mit dem Aufruf von unlockscreen() an den Anfang der Funktion, wird das Overlay ausgeblendet.
Setze ich hingegen das if/else Konstrukt an den Anfang, bleibt dies weiter bestehen (nachweislich wird die Funktion unlockscreen() nicht aufgerufen). Eine Animation wird in beiden Fällen nicht angezeigt.
Das Kuriose jedoch: Öffne ich die Entwicklertools (F12) und rufe die Seite erneut auf, funktioniert alles kompromisslos!
Was kann ich tun dass dieses Problem nicht weiter auftritt?
