if(window.innerWidth)
{
x_pos = Math.ceil((window.innerWidth + window.pageXOffset - 100)/2) + "px";
y_pos = Math.ceil((window.innerHeight + window.pageYOffset - 100)/2) + "px";
}
else if(document.documentElement && document.documentElement.scrollTop)
{
alert("element!" + document.documentElement.scrollTop);
x_pos = Math.ceil((document.documentElement.offsetWidth + document.documentElement.scrollLeft - 100)/2) + "px";
y_pos = Math.ceil((document.documentElement.offsetHeight + document.documentElement.scrollTop - 100)/2) + "px";
}
else if (document.body)
Und noch was.
Du solltest nicht auf document.body oder element prüfen, den Fehler hab ich am Anfang auch gemacht, sondern explizit auf den Modus. Ich benutze dazu folgende Funktion:
/////////////////////////////////////////////////
// Der IE hat 2 verschiedene Objekte
// für den strict und quirks Mode.
function getBody(w)
/////////////////////////////////////////////////
{
return (w.document.compatMode && w.document.compatMode == "CSS1Compat") ?
w.document.documentElement : w.document.body || null;
}
und dann:
...
var obj = getBody(win);
s.left = obj.scrollLeft;
s.top = obj.scrollTop;
...
Struppi.