什么是BOM?
BOM,Browser Object Model
即浏览器对象模型。浏览器页面初始化时,会在内存创建一个全局对象,用来描述当前窗口的属性和状态,这个全局对象被称为浏览器对象模型。
不同于DOM的标准化组织是W3C,JavaScript的语法标准化组织是ECMA,BOM没有官方标准,对于现代浏览器,每个浏览器都有自己的BOM实现方法,所以直接使用BOM会有兼容性问题。
BOM包含哪些内容?
BOM有一个核心对象window,window对象包含了6大核心模块,分别是:
document对象,即文档对象
frames,即HTML自框架
history,即页面的历史记录
location,即当前页面的地址
navigator,包含浏览器相关信息
screen,用户显示屏幕相关属性
Window 对象的属性
所有浏览器都支持 window 对象。它表示浏览器窗口。 所有 JavaScript 全局对象、函数以及变量均自动成为 window
对象的成员。 全局变量是 window 对象的属性。 全局函数是 window 对象的方法。 甚至 HTML DOM 的 document
也是 window 对象的属性之一
窗口尺寸:
window对象有两个用来定义浏览器窗口大小的属性(两个属性均返回以px像素为单位的数值)浏览器窗口(浏览器视口)不包括工具栏和滚动条。
window.innerHeight属性:返回窗口的文档显示区的高度。
浏览器窗口的视口(viewport)高度(CSS布局占据的浏览器窗口的高度),如属性只读,且没有默认值
var intViewportHeight = window.innerHeight;
window.innerWidth属性:返回窗口的文档显示区的宽度
浏览器视口(viewport)宽度(单位:像素),属性只读,且没有默认值。
全屏状态下,不同的浏览器因为布局不一样,也会返回不同的innerHeight和innerWidth
兼容所有浏览器写法
var intViewportWidth = window.innerWidth;
<p id="demo"