JS获取各种浏览器窗口大小的方法


Posted in Javascript onJanuary 14, 2014

常用:
JS 获取浏览器窗口大小

// 获取窗口宽度 
if (window.innerWidth) 
winWidth = window.innerWidth; 
else if ((document.body) && (document.body.clientWidth)) 
winWidth = document.body.clientWidth; 
// 获取窗口高度 
if (window.innerHeight) 
winHeight = window.innerHeight; 
else if ((document.body) && (document.body.clientHeight)) 
winHeight = document.body.clientHeight; 
// 通过深入 Document 内部对 body 进行检测,获取窗口大小 
if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) 
{ 
winHeight = document.documentElement.clientHeight; 
winWidth = document.documentElement.clientWidth; 
}

详细:
关于获取各种浏览器可见窗口大小:
<script>
function getInfo()
{
var s = "";
s = " 网页可见区域宽:" document.body.clientWidth;
s = " 网页可见区域高:" document.body.clientHeight;
s = " 网页可见区域宽:" document.body.offsetWidth " (包括边线和滚动条的宽)";
s = " 网页可见区域高:" document.body.offsetHeight " (包括边线的宽)";
s = " 网页正文全文宽:" document.body.scrollWidth;
s = " 网页正文全文高:" document.body.scrollHeight;
s = " 网页被卷去的高(ff):" document.body.scrollTop;
s = " 网页被卷去的高(ie):" document.documentElement.scrollTop;
s = " 网页被卷去的左:" document.body.scrollLeft;
s = " 网页正文部分上:" window.screenTop;
s = " 网页正文部分左:" window.screenLeft;
s = " 屏幕分辨率的高:" window.screen.height;
s = " 屏幕分辨率的宽:" window.screen.width;
s = " 屏幕可用工作区高度:" window.screen.availHeight;
s = " 屏幕可用工作区宽度:" window.screen.availWidth;

s = " 你的屏幕设置是 " window.screen.colorDepth " 位彩色";
s = " 你的屏幕设置 " window.screen.deviceXDPI " 像素/英寸";
//alert (s);
}
getInfo();
</script>
在我本地测试当中:
在IE、FireFox、Opera下都可以使用
document.body.clientWidth
document.body.clientHeight
即可获得,很简单,很方便。
而在公司项目当中:

Opera仍然使用
document.body.clientWidth
document.body.clientHeight

可是IE和FireFox则使用
document.documentElement.clientWidth
document.documentElement.clientHeight

原来是W3C的标准在作怪啊
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

如果在页面中添加这行标记的话 在IE中:
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度

在FireFox中:
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
 

在Opera中:
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
而如果没有定义W3C的标准,则

IE为:
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0

FireFox为:
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)

Opera为:
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)

Javascript 相关文章推荐
Jquery中dialog属性小记
Sep 03 Javascript
HTML中的setCapture和releaseCapture使用介绍
Mar 21 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
Mar 11 Javascript
JS简单实现tab切换效果的多窗口显示功能
Sep 07 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
详解Node.js项目APM监控之New Relic
May 12 Javascript
JavaScript中的一些隐式转换和总结(推荐)
Dec 22 Javascript
小程序点赞收藏功能的实现代码示例
Sep 07 Javascript
angularjs中判断ng-repeat是否迭代完的实例
Sep 12 Javascript
使用typescript构建Vue应用的实现
Aug 26 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
Nov 11 Javascript
微信小程序实现列表左右滑动
Nov 19 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
Jan 14 #Javascript
Eclipse下jQuery文件报错出现错误提示红叉
Jan 13 #Javascript
节点的插入之append()和appendTo()的用法介绍
Jan 13 #Javascript
移动节点的jquery代码
Jan 13 #Javascript
删除节点的jquery代码
Jan 13 #Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
Jan 13 #Javascript
js实现的map方法示例代码
Jan 13 #Javascript
You might like
PHP $_SERVER详解
2009/01/16 PHP
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Anaconda入门使用总结
2018/04/05 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
Python-for循环的内部机制
2020/06/12 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
南京某公司笔试题
2013/01/27 面试题
师范生实习个人的自我评价
2013/09/28 职场文书
建材业务员岗位职责
2013/12/08 职场文书
毕业实习个人鉴定范文
2013/12/10 职场文书
小学中秋节活动方案
2014/02/06 职场文书
机械专业技术员求职信
2014/06/14 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
个人作风建设自查报告
2014/10/22 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python
Python实现制作销售数据可视化看板详解
2021/11/27 Python