2010-11-08 3 views
1

Я curently используя условия follownig, но они не работают во всех браузерах или вообще:Каков самый надежный способ получить ширину/высоту окна браузера с помощью 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 
} 

Я считаю, что мне не хватает состояние или два - возможно, есть еще одна общего выражения я не принимал в учетную запись.

Что нужно добавить, чтобы это заполнить?

+1

Вы действительно поддерживаете IE4? Доля рынка для IE <6 в сочетании составляет где-то около 1%, не так ли? –

+0

@ Josh.Trow: Я вытащил это из Интернета где-то - я просто ищу, чтобы поддерживать столько браузеров, сколько возможно по-человечески. Дополнительное условие для IE4 на самом деле не намного сложнее, а? – Giffyguy

+1

IE 4 - древняя мумия. Он был старым, даже когда я был моложе. Я не могу придумать, чтобы кто-то все еще пытался его поддержать. Вы тоже не должны думать об этом. –

ответ

0

Вы лучше оборачивать всю логику в функцию, так что вы только должны сказать 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

Но для еще более надежного подхода, пожалуйста, посетите связанный с ним список вопросов, связанных с comp.lang.javascript:
How do I find the size of the window?

1

Включите jQuery на свои страницы и используйте $(window).width() и $(window).height().

+1

Глядя на это в JavaScript, а не на JQuery. – Giffyguy

+5

JQuery - это Javascript и open source. Если вам не нужна полная поддержка jQuery, вы можете посмотреть в источник, как они реализовали эти методы. –

+0

@Mark: Это отличная точка. Благодарю. Я вполне могу это сделать, поскольку методы JQuery, вероятно, являются лучшим примером на рынке. – Giffyguy