BOM 对象基本概念

406 阅读3分钟

引言

BOM 全称 Browser Object Model,浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"

BOM 对象中只有一个全局对象window。在浏览器环境中,window对象是顶级对象,它代表整个浏览器窗口和浏览器环境,提供了对浏览器窗口、文档、导航、历史、存储和其他功能的访问和控制

Window 对象

  • 所有浏览器都支持 window 对象,它表示浏览器窗口
  • 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员
  • 全局变量是 window 对象的属性,全局函数是 window 对象的方法
  • 甚至 HTML DOM 的 document 也是 window 对象的属性之一

Window 尺寸

  • window.innerHeight - 浏览器窗口的内部高度(包括滚动条)
  • window.innerWidth - 浏览器窗口的内部宽度(包括滚动条)
  • document.documentElement.clientHeight - html标签高度
  • document.documentElement.clientWidth - html标签宽度
  • document.body.clientHeight - body标签高度
  • document.body.clientWidth - body标签宽度

Window 方法

  • window.open() - 打开新窗口
  • window.close() - 关闭当前窗口
  • window.moveTo() - 移动当前窗口
  • window.resizeTo() - 调整当前窗口的尺寸

Window Location 对象

window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面

Location 属性

  • location.hostname 返回 web 主机的域名
  • location.pathname 返回当前页面的路径和文件名
  • location.port 返回 web 主机的端口 (80 或 443)
  • location.protocol 返回所使用的 web 协议(http: 或 https:)
  • location.href 属性返回当前页面的 URL

Location 方法

location.assign() 方法加载新的文档

Window History 对象

window.history 对象包含浏览器的历史

History 方法

  • history.back() - 与在浏览器点击后退按钮相同
  • history.forward() - 与在浏览器中点击向前按钮相同

Window Navigator 对象

window.navigator 对象包含有关访问者浏览器的信息

Window 弹框

可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框

  • window.alert() - 警告框
  • window.confirm() - 确认框
  • window.prompt() - 提示框

Window 计时事件

通过使用 JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件

在 JavaScript 中使用计时事件是很容易的,两个关键方法是:

  • setInterval() - 间隔指定的毫秒数不停地执行指定的代码。
  • setTimeout() - 在指定的毫秒数后执行指定代码。

注意: setInterval() 和 setTimeout() 是 HTML DOM Window对象的两个方法。

  • clearInterval() 方法用于停止 setInterval() 方法执行的函数代码
  • clearTimeout() 方法用于停止执行setTimeout()方法的函数代码

JavaScript Cookie 对象

  • Cookie 用于存储 web 页面的用户信息
  • Cookie 是一些数据, 存储于电脑上的文本文件中
  • 当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息

Cookie 的作用就是用于解决 "如何记录客户端的用户信息":

  • 当用户访问 web 页面时,它的名字可以记录在 cookie 中
  • 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录

Cookie 以名/值对形式存储

JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie

小结

其他BOM 对象和方法都是window对象的属性,可以通过window对象来访问。这些对象和方法包括 documentnavigatorhistorylocationlocalStoragealertconfirmprompt

而在访问这些对象时,通常可以不加window.前缀。这是因为这些对象和方法都被添加到了全局作用域中(因为全局对象的属性会自动添加到全局作用域中),因此可以直接访问,就好像它们是全局变量一样,无需显式使用window.前缀

提示:当然带上前缀是更安全的做法,要是局部作用域定义了相同的变量名和方法,BOM 对象的就失效了