molily: Hinweis bei Browserauflösung

Beitrag lesen

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