确定浏览器中的实际查看大小

时间:2010-06-24 15:14:52

标签: javascript browser dimensions viewport

我正在尝试确定当前浏览器窗口的实际viewPORT大小。我试过了:

  • window.innerHeight / innerWidth
  • document.documentElement.clientHeight / clientWidth
  • document.body.clientHeight / clientWidth

全部返回整页尺寸,而不是观看区域。

我想要最终实现的是强制弹出菜单出现在屏幕上(在视口中)。现在,当它显示时,它可能显示在滚动下方,用户对此不满意。我知道他们点击的地方的x,y。我只需要将它与观看区域的大小(弹出窗口的大小)进行比较,看它是否会出现在屏幕外。

应该注意的是,页面显示在IFRAME中,所以如果我需要上升一个级别来获得正确的值,我可以这样做。

3 个答案:

答案 0 :(得分:2)

  
      
  • window.innerHeight / innerWidth
  •   

明确地确实为您提供了视口大小(在这种情况下,iframe中的大小),但它在IE上不可用。

  
      
  • document.documentElement.clientHeight / clientWidth
  •   

当浏览器处于标准模式时,它会为您提供视口大小。通常用作IE的后备。

  
      
  • document.body.clientHeight / clientWidth
  •   

这为Quirks mode提供了视口高度。您不希望处于Quirks模式。检查文档的<!DOCTYPE

  

我只需将其与观看区域的大小进行比较

然后,您还必须查看document.documentElement.scrollTop / scrollLeft

答案 1 :(得分:0)

尝试

document.getElementById("").offsetWidth

使用不同的元素ID填写上面的代码,尝试使用body标签或包装div。

答案 2 :(得分:0)

显然,通过转到父文档,我能够获得正确的值。

谢谢!