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中对数组进行操作的方法
Apr 16 Javascript
jquery实现弹出层遮罩效果的简单实例
Mar 03 Javascript
jQuery学习笔记之jQuery原型属性和方法
Jun 09 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
Aug 28 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
Jan 03 Javascript
详解Angular 开发环境搭建
Jun 22 Javascript
vue js秒转天数小时分钟秒的实例代码
Aug 08 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 Javascript
微信小程序批量上传图片到七牛(推荐)
Dec 19 Javascript
Javascript实现html转pdf高清版(提高分辨率)
Feb 19 Javascript
mustache.js实现首页元件动态渲染的示例代码
Dec 28 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中数组定义的几种方法
2013/09/01 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
js实现详情页放大镜效果
2020/10/28 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
中介公司区域经理岗位职责范本
2014/03/02 职场文书
旅游市场营销方案
2014/03/09 职场文书
大学生社团活动总结
2014/04/26 职场文书
夏季药店促销方案
2014/08/22 职场文书
关键在于落实心得体会
2014/09/03 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers