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 相关文章推荐
javascript下利用arguments实现string.format函数
Aug 24 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
Oct 30 Javascript
js精美的幻灯片画集特效代码分享
Aug 29 Javascript
Javascript基础知识盲点总结之函数
May 15 Javascript
JavaScript实现水平进度条拖拽效果
Jan 18 Javascript
JavaScript之map reduce_动力节点Java学院整理
Jun 29 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
Aug 14 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
Aug 25 Javascript
微信小程序之判断页面滚动方向的示例代码
Aug 30 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
Nov 22 Javascript
layer弹出层取消遮罩的方法
Sep 25 Javascript
如何实现iframe父子传参通信
Feb 05 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+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
php生成图片缩略图的方法
2015/04/07 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
JavaScript 事件参考手册
2008/12/24 Javascript
JavaScript 无符号右移运算符
2009/04/17 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python将多个excel文件合并为一个文件
2018/01/03 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
应届生会计求职信
2013/11/11 职场文书
村创先争优活动总结
2014/08/28 职场文书
学习计划书怎么写
2014/09/15 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
辩论会主持词
2015/07/03 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android