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 相关文章推荐
可选择和输入的下拉列表框示例
Nov 05 Javascript
js的回调函数详解
Jan 05 Javascript
浅谈EasyUI中Treegrid节点的删除
Mar 01 Javascript
易被忽视的js事件问题总结
May 14 Javascript
Ionic快速安装教程
Jun 03 Javascript
理解 Node.js 事件驱动机制的原理
Aug 16 Javascript
关于vue路由缓存清除在main.js中的设置
Nov 06 Javascript
vue data引入本地图片的两种方式小结
Nov 13 Javascript
vue分页插件的使用方法
Dec 25 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
Oct 28 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
Nov 12 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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系列学习之日期函数使用介绍
2012/08/18 PHP
深入php self与$this的详解
2013/06/08 PHP
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
php中stdClass的用法分析
2015/02/27 PHP
详解PHP中的Traits
2015/07/29 PHP
类之Prototype.js学习
2007/06/13 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
脚本合并提升javascript性能示例
2014/02/24 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
vuex入门最详细整理
2020/03/04 Javascript
python 控制语句
2011/11/03 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
小学国庆节活动方案
2014/02/11 职场文书
团代会主持词
2014/04/02 职场文书
大学课外活动总结
2014/07/09 职场文书
经典搞笑版检讨书
2015/02/19 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
仓库管理制度范本
2015/08/04 职场文书
导游词之太湖
2019/10/08 职场文书