2010-11-08 34 views
1

Je suis curently en utilisant les conditions de follownig, mais ils ne fonctionnent pas dans les navigateurs ou pas du tout:Quel est le moyen le plus robuste pour obtenir la largeur/hauteur de la fenêtre du navigateur en utilisant JavaScript?

if (typeof (window.innerHeight) == 'number') { 
    //Non-IE: 
    //Perform operation using window.innerWidth/Height 
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 
    //IE 6+ in 'standards compliant mode' 
    //Perform operation using document.documentElement.clientWidth/Height 
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { 
    //IE 4 compatible 
    //Perform operation using document.body.clientWidth/Height 
} 

Je crois que je suis manque une condition ou deux - peut-être il y a une autre expression commune que je ne l'ai pas pris en compte.

Que dois-je ajouter pour que cela soit complet?

+1

Supportez-vous toujours IE4? La part de marché pour IE <6 combinée est quelque part autour de 1% n'est-ce pas? –

+0

@ Josh.Trow: Je l'ai retiré de l'Internet quelque part - je cherche juste à supporter autant de navigateurs que possible humainement. Une condition supplémentaire pour IE4 n'est pas vraiment plus compliquée, hein? – Giffyguy

+1

IE 4 est une momie ancienne. C'était vieux même quand j'étais plus jeune. Je ne peux pas penser à quelqu'un qui essaie toujours de le soutenir. Vous aussi, vous ne devriez vraiment pas y penser. –

Répondre

0

Vous mieux envelopper toute la logique en fonction, donc il vous suffit de dire getWindowHeight()

// cross browser window height 
function getWindowHeight() { 
    return window.innerHeight || 
     (document.documentElement && document.documentElement.clientHeight) || 
     (document.body && document.body.clientHeight); 
} 

Tested: IE5.5 +, FF 2+, Chrome, Opera

Mais pour une approche encore plus robuste s'il vous plaît visitez l'entrée connexe FAQ comp.lang.javascript:
How do I find the size of the window?

1

Incluez jQuery dans vos pages et utilisez $(window).width() et $(window).height().

+1

Vous cherchez à le faire en JavaScript, pas JQuery. – Giffyguy

+5

JQuery est Javascript, et opensource. Si vous ne voulez pas de support jQuery complet, vous pouvez regarder dans la source comment ils ont implémenté ces méthodes. –

+0

@Mark: C'est un excellent point. Merci. Je peux très bien le faire, car les méthodes JQuery sont probablement le meilleur exemple sur le marché. – Giffyguy