JavaScript中关于获取浏览器可视窗口的几个兼容性写法的理解

1.浏览器可视窗口的概述:

   浏览器可视区域不是网页的body的大小。可视区指的是浏览器减去上面菜单栏、工具栏,下面状态栏和任务栏,右边滚动条(如果有的话)后的中间网页内容的单页面积大小。而body大小是随着内容调整而变动的,可大可小。如果有滚动条的话,body的要大于可视区

2.不同浏览器或版本的不同写法:    

对于IE9+、Chrome、Firefox、Opera 以及 Safari(window对象属性不支持IE8及以下浏览器):
  window.innerHeight - 浏览器窗口的内部高度
  window.innerWidth - 浏览器窗口的内部宽度
对于 Internet Explorer 8、7、6、5:
  document.documentElement.clientHeight 表示HTML文档所在窗口的当前高度(浏览器窗口的内部高度)
  document.documentElement.clientWidth 表示HTML文档所在窗口的当前宽度(浏览器窗口的内部宽度)
或者 Document对象的body属性对应HTML文档的<body>标签
  document.body.clientHeight  (body标签的内部高度)
  document.body.clientWidth  (body标签的内部宽度)

综上所述,在不同浏览器都实用的兼容性JavaScript 方案如下:
  var w= window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
  var h= window.innerHeight || document.documentElement.clientHeight|| document.body.clientHeight;

3. 关于兼容性的后两者的理解:

   3.1 两者对象不同(前者是浏览器对象,后者是body对象),其结果也不绝对相同

    3.2 在浏览器默认的情况下,body有8-10px左右的边距,而可见区域包括了这个边距,因此如果我们用到body{padding:0;margin:0;}来消除这种默认的情况。那么document.body.clientWidth和document.documentElement.clientWidth 的值就会相同。

  

  

原文地址:https://www.cnblogs.com/menglong1214/p/9418270.html

时间: 2024-08-29 13:39:22

JavaScript中关于获取浏览器可视窗口的几个兼容性写法的理解的相关文章

JQuery 获取元素到浏览器可视窗口边缘的距离

获取元素到浏览器可视窗口边缘的距离 by:授客 QQ:1033553122 1.   测试环境 JQuery-3.2.1.min.js 下载地址: https://gitee.com/ishouke/front_end_plugin/blob/master/jquery-3.2.1.min.js Bootstrap-3.3.7-dist 下载地址: https://gitee.com/ishouke/front_end_plugin/blob/master/bootstrap-3.3.7.zip

JS获取浏览器可视区域尺寸

在没有声明DOCTYPE的IE中,浏览器显示窗口大小只能以下获取: document.body.offsetWidth document.body.offsetHeight 在声明了DOCTYPE的浏览器中,可以用以下来获取浏览器显示窗口大小: document.documentElement.clientWidth document.documentElement.clientHeight IE,FF,Safari皆支持该方法,opera虽支持该属性,但是返回的是页面尺寸: 同时,除了IE以外

JS获取浏览器可视区域的尺寸

所谓可视区域是指能看得见的区域,即在浏览器中能看到页面的区域(高度与宽度).刚刚使用 document.body.clientHeight 来获取可视区域的高度得到的却是整个文档的高度,然后在cnblogs.com的一篇文章中获知需要通过 document.documentElement.clientHeight 才能获取到浏览器的可视区域的高度,顺便将该文章摘下来,如下: 在没有声明DOCTYPE的IE中,浏览器显示窗口大小只能以下获取: 1 2 document.body.offsetWid

JavaScript中解决多浏览器兼容性问题的方案

一.document.formName.item(”itemName”) 问题 问题说 明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName"]:Firefox 下,只能使用document.formName.elements["elementName"]. 解决方法:统一使用document.formName.elements["e

原生JS 获取浏览器、窗口、元素等尺寸的方法及注意事项

一.通过浏览器获得屏幕的尺寸 screen.width screen.height screen.availHeight //获取去除状态栏后的屏幕高度 screen.availWidth //获取去除状态栏后的屏幕高度 二.获取浏览器窗口内容的尺寸 //高度 window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight //宽度 window.innerWidth || doc

Javascript、Jquery获取浏览器和屏幕各种高度宽度

Javascript: alert(document.body.clientWidth);        //网页可见区域宽(body) alert(document.body.clientHeight);       //网页可见区域高(body) alert(document.body.offsetWidth);       //网页可见区域宽(body),包括border.margin等 alert(document.body.offsetHeight);      //网页可见区域宽(b

juery解决获取浏览器可视区域的兼容性问题

alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(document.body).height());//浏览器时下窗口文档body的高度 alert($(document.body).outerHeight(true));//浏览器时下窗口文档body的总高度 包括border padding margin alert($(window).width());

获取浏览器高度 窗口高度 元素尺寸 偏移属性

screen.width screen.height screen.availHeight //获取去除状态栏后的屏幕高度 screen.availWidth //获取去除状态栏后的屏幕高度 一.通过浏览器获得屏幕的尺寸 二.获取浏览器窗口内容的尺寸 //高度 window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight //宽度 window.innerWidth || doc

jquery 获取浏览器可视窗口大小,滚动条高度

alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(document.body).height());//浏览器时下窗口文档body的高度 alert($(document.body).outerHeight(true));//浏览器时下窗口文档body的总高度 包括border padding margin alert($(window).width());