Trova l’altezza e la larghezza esatte del viewport in modo cross-browser (no Prototype / jQuery)

Sto cercando di trovare l’altezza e la larghezza esatte della finestra di un browser, ma sospetto che Mozilla o IE mi stiano dando il numero sbagliato. Ecco il mio metodo per l’altezza:

var viewportHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; 

Non ho ancora iniziato sulla larghezza, ma immagino che sarà qualcosa di simile.

C’è un modo più corretto per ottenere queste informazioni? Idealmente, mi piacerebbe che la soluzione funzionasse anche con Safari / Chrome / altri browser.

Potresti provare questo:

 function getViewport() { var viewPortWidth; var viewPortHeight; // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight if (typeof window.innerWidth != 'undefined') { viewPortWidth = window.innerWidth, viewPortHeight = window.innerHeight } // IE6 in standards compliant mode (ie with a valid doctype as the first line in the document) else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) { viewPortWidth = document.documentElement.clientWidth, viewPortHeight = document.documentElement.clientHeight } // older versions of IE else { viewPortWidth = document.getElementsByTagName('body')[0].clientWidth, viewPortHeight = document.getElementsByTagName('body')[0].clientHeight } return [viewPortWidth, viewPortHeight]; } 

( http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/ )

Tuttavia, non è nemmeno ansible ottenere le informazioni sulla vista in tutti i browser (ad es. IE6 in modalità quirk). Ma lo script sopra dovrebbe fare un buon lavoro 🙂

U può usare la versione più breve:

  

Ho sempre usato semplicemente document.documentElement.clientHeight / clientWidth . Non penso che tu abbia bisogno delle condizioni OR in questo caso.

Prova questo..