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效果 slideToggle() 方法(在隐藏和显示之间切换)
Jun 28 Javascript
dotopAlert 提示用户需安装播放器的代码
Sep 17 Javascript
通过jQuery源码学习javascript(一)
Dec 27 Javascript
jQuery实现复选框批量选择与反选的方法
Jun 17 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
Oct 10 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 Javascript
利用JS判断客户端类型你应该知道的四种方法
Dec 22 Javascript
Vue核心概念Getter的使用方法
Jan 18 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
Mar 29 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 08 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
Jan 12 Vue.js
JavaScript canvas实现跟随鼠标移动小球
Feb 09 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
php4的session功能评述(二)
2006/10/09 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
js继承实现方法详解
2016/12/16 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
详解python tkinter 图片插入问题
2020/09/03 Python
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
四年级下册教学反思
2014/02/01 职场文书
健康教育评估方案
2014/05/25 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
户籍证明书标准模板
2014/09/10 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
校友回访母校寄语
2015/02/26 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
JavaScript实现优先级队列
2021/12/06 Javascript
netty 实现tomcat的示例代码
2022/06/05 Servers