zum o.a. thema hab ich was zusammengefummelt, das scheinbar funktioniert... (keine ahnung wie das passieren konnte! ist mir noch nie passiert!) könnte mal bitte jemand nach fehlern oder/und kompatibelität checken?
Ja, so kannst du das lösen. Mit onload anstatt onresize zu arbeiten ist in dem Fall wohl besser und ausreichend.
Allgemein sind die SELFHTML-Funktionen nicht so toll, weil dort ein Zweig für IE 6-8 im standardkonformen Modus fehlt. In diesen sollte man die clientWidth/Height nämlich beim html-Element abfragen (document.documentElement) anstatt beim body-Element (document.body), weil sich das body-Element nicht automatisch auf Viewport-Höhe vergrößert. Etwa so:
function getViewportSize () {
var w, h, el;
if (window.innerWidth) {
// Opera, Firefox, Webkit, IE ab 9, Netscape 4 ;-)
w = window.innerWidth;
h = window.innerHeight;
} else if ((el = document.documentElement) && (el.clientWidth || el.clientHeight)) {
// IE 6-8 im standardkonformen Modus
w = el.clientWidth;
h = el.clientHeight;
} else if ((el = document.body) && (el.clientWidth || el.clientHeight)) {
// IE < 6
w = el.clientWidth;
h = el.clientHeight;
}
return { width: w, height: h };
}
var viewport = getViewportSize();
if (viewport.width < 900 || viewport.height < 820) {
alert('...');
}
Testen: http://jsfiddle.net/Y8Xcd/1/
Der Aufbau kommt hierher: http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
Dieses Script geht stillschweigend vom standardkonformen Modus aus (also ein vollständiger DOCTYPE bzw. ein HTML5-DOCTYPE angegeben ist), ansonsten müsste man testen, ob sich der IE in selbigem Modus befindet (document.compatMode == 'CSS1Compat"), bevor man document.documentElement.clientWidth/Height verwendet.
Mathias