如何在不使用jquery的情况下获取文档高度和宽度

Sar*_*tha 103 javascript

如何在纯获取文档高度和宽度,即不使用.
我知道$(document).height()$(document).width(),但我想在这样做.

我的意思是页面的高度和宽度.

Dam*_*amb 116

var height = document.body.clientHeight;
var width = document.body.clientWidth;
Run Code Online (Sandbox Code Playgroud)

检查: 本文为了更好的解释.

  • @Iwazaru感谢您指出这一点.看起来这4岁回复不是防弹:) (12认同)
  • 这不是跨浏览器.您应该在发布之前对此进行测试. (8认同)
  • 似乎[它是跨浏览器](https://developer.mozilla.org/en-US/docs/Web/API/Element/clientHeight#Browser_compatibility)。 (3认同)

Dan*_*Dan 56

即使是http://www.howtocreate.co.uk/tutorials/javascript/browserwindow上给出的最后一个例子也不适用于Quirks模式.比我想象的更容易找到,这似乎是解决方案(从最新的jquery代码中提取):

Math.max(
    document.documentElement["clientWidth"],
    document.body["scrollWidth"],
    document.documentElement["scrollWidth"],
    document.body["offsetWidth"],
    document.documentElement["offsetWidth"]
);
Run Code Online (Sandbox Code Playgroud)

只需将"高度"替换为"高度"即可获得高度.


ham*_*mid 34

这是一个跨浏览器的解决方案:

var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
Run Code Online (Sandbox Code Playgroud)

  • 这是返回窗口的高度和宽度,而不是文档的高度和宽度 (2认同)

Eri*_*ner 24

你应该使用getBoundingClientRect它通常跨浏览器工作,并在边界矩形上给你子像素精度.

elem.getBoundingClientRect()
Run Code Online (Sandbox Code Playgroud)


小智 10

不使用jQuery获取文档大小

document.documentElement.clientWidth
document.documentElement.clientHeight
Run Code Online (Sandbox Code Playgroud)

如果您需要屏幕尺寸,请使用此选项

screen.width
screen.height
Run Code Online (Sandbox Code Playgroud)


Mih*_*tiu 8

你也可以尝试:

document.body.offsetHeight
document.body.offsetWidth
Run Code Online (Sandbox Code Playgroud)


use*_*284 8

这适用于所有浏览器/设备:

function getActualWidth()
{
    var actualWidth = window.innerWidth ||
                      document.documentElement.clientWidth ||
                      document.body.clientWidth ||
                      document.body.offsetWidth;

    return actualWidth;
}
Run Code Online (Sandbox Code Playgroud)