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