js获取浏览器基本信息大全


Posted in Javascript onNovember 27, 2014

网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth (包括边线的宽)
网页可见区域高:document.body.offsetHeight (包括边线的宽)
网页正文全文宽:document.body.scrollWidth
网页正文全文高:document.body.scrollHeight
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.body.scrollLeft
网页正文部分上:window.screenTop
网页正文部分左:window.screenLeft
屏幕分辨率的高:window.screen.height
屏幕分辨率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

IE,FireFox 差异如下

IE6.0、FF1.06+:

clientWidth = width + padding

clientHeight = height + padding

offsetWidth = width + padding + border

offsetHeight = height + padding + border

IE5.0/5.5

clientWidth = width - border

clientHeight = height - border

offsetWidth = width

offsetHeight = height

(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

-------------------

技术要点

本节代码主要使用了Document对象关于窗口的一些属性,这些属性的主要功能和用法如下。

要得到窗口的尺寸,对于不同的浏览器,需要使用不同的属性和方法:若要检测窗口的真实尺寸,在Netscape下需要使用Window的属性;在 IE下需要深入Document内部对body进行检测;在DOM环境下,若要得到窗口的尺寸,需要注意根元素的尺寸,而不是元素。

Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度。

Document对象的body属性对应HTML文档的标签。Document对象的documentElement属性则表示HTML文档的根节点。

document.body.clientHeight表示HTML文档所在窗口的当前高度。document.body. clientWidth表示HTML文档所在窗口的当前宽度。

关于获取各种浏览器可见窗口大小的一点点研究。

在我本地测试当中:在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的标准在作怪啊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将控件隐藏的方法及display属性介绍
Jul 04 Javascript
javascript图片预加载实例分析
Jul 16 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
Nov 17 Javascript
vue.js利用Object.defineProperty实现双向绑定
Mar 09 Javascript
js获取当前周、上一周、下一周日期
Mar 19 Javascript
vue.js开发环境搭建教程
May 04 Javascript
vue实现表格增删改查效果的实例代码
Jul 18 Javascript
Vue2.0权限树组件实现代码
Aug 29 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
Oct 26 Javascript
VUE 实现复制内容到剪贴板的两种方法
Apr 24 Javascript
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
js实现特别简单的钟表效果
Sep 14 Javascript
jQuery实现多按钮单击变色
Nov 27 #Javascript
jQuery的ready方法详解
Nov 27 #Javascript
javascript 面向对象封装与继承
Nov 27 #Javascript
javascript制作坦克大战全纪录(2)
Nov 27 #Javascript
javascript制作坦克大战全纪录(1)
Nov 27 #Javascript
使用jsonp完美解决跨域问题
Nov 27 #Javascript
JavaScript变量声明详解
Nov 27 #Javascript
You might like
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
2007/08/21 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
Python实现的几个常用排序算法实例
2014/06/16 Python
python的类方法和静态方法
2014/12/13 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
教你学会使用Python正则表达式
2017/09/07 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
同程旅游英文网站:LY.com
2018/11/13 全球购物
公司离职证明范本
2014/01/13 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
实训报告范文大全
2014/11/04 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript