用js获取当前浏览器窗口大小/尺寸

在前端页面开发时,有时需要获取当前浏览器窗口的大小,由于各浏览器之间没有统一标准,所以在开发中获取当前浏览器窗口大小需要使用不同的属性,在现代浏览器中没有这些差异。

1.window.innerWidth / window.innerHeight

谷歌浏览器 正常
火狐浏览器 正常
360浏览器 正常
IE9+ 正常
IE7~IE8 undefined

2. document.documentElement.clientWidth / document.documentElement.clientHeight

(1)有文档声明时,可以正常获取浏览器窗口尺寸
(2)无文档声明时:
① 未设置html的width、height属性
火狐浏览器 宽度正常,高度为文档高度
谷歌浏览器 正常
360浏览器 正常
IE浏览器 正常
② 已设置html的width、height属性
火狐浏览器、谷歌浏览器、360浏览器,获取的值为该值。
IE浏览器可以获取浏览器窗口尺寸

3. document.body.clientWidth / document.body.clientHeight

(1)有文档声明时:
对于 document.body.clientWidth, 未设置body的width属性时,可以获取到浏览器窗口尺寸;已设置body的width属性时,获取的值即为该值。
对于 document.body.clientHeight,获取的是文档高度。

(2)无文档声明:
获取的是浏览器窗口尺寸

3. document.documentElement.offsetWidth / document.documentElement.offsetHeight

与第2种基本相同,但此方法会获取浏览器的边框。

※※※ 只考虑有文档声明的情况,可以通过下面的方法来获取当前浏览器窗口大小。

var winWidth, winHeight;
if (window.innerWidth) {
    winWidth = window.innerWidth;
    winHeight = window.innerHeight;
} else {
    winWidth = document.documentElement.clientWidth;
    winHeight = document.documentElement.clientHeight;
}
此条目发表在JavaScript分类目录,贴了, 标签。将固定链接加入收藏夹。

发表回复