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 相关文章推荐
轻量级 JS ToolTip提示效果
Jul 20 Javascript
在vs2010中调试javascript代码方法
Feb 11 Javascript
ES6数组的扩展详解
Apr 25 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 Javascript
解决在vue项目中webpack打包后字体不生效的问题
Sep 01 Javascript
详解JavaScript作用域和作用域链
Mar 19 Javascript
使用微信SDK自定义分享的方法
Jul 03 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
Feb 02 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 Javascript
js 实现碰撞检测的示例
Oct 28 Javascript
Vue+Flask实现图片传输功能
Apr 01 Vue.js
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 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
详解Vue方法与事件
2017/03/09 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
python实现的重启关机程序实例
2014/08/21 Python
TensorFlow如何实现反向传播
2018/02/06 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python利用tkinter实现屏保
2019/07/30 Python
Python 音频生成器的实现示例
2019/12/24 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
Django分组聚合查询实例分享
2020/04/29 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
2014年个人债务授权委托书范本
2014/09/22 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python