14. JavaScript BOM 浏览器提供给 JavaScript 的一组 API

98 阅读3分钟

JavaScript BOM 浏览器提供给 JavaScript 的一组 API

BOM浏览器对象模型Browser Object Model),它提供了 与浏览器窗口 进行交互 的 对象 和 方法。它是 JavaScript 运行在 浏览器环境中 的 重要扩展

可以将 BOM 理解为是 浏览器 提供给 JavaScript 的 一组 API,用于 控制 浏览器 的 行为 和 获取 浏览器 相关的 信息。

BOM 的主要对象

1 window 对象

window 对象是 BOM核心对象,它代表 浏览器的 一个窗口。在浏览器中,所有的 全局变量函数 实际上都是 window 对象的 属性 和 方法

它用于 操作 浏览器 窗口本身,如 改变窗口 大小、位置等。在现代浏览器中,由于 安全 和 用户体验 的原因,很多 窗口操作方法 受到限制。

还用于 控制 窗口的 滚动window.scrollTo(x, y) 方法 可以将 窗口 滚动到 指定的 坐标位置,xy 分别是 水平 和 垂直 方向的 坐标

宽度和高度属性
innerWidthinnerHeight

它们是 浏览器窗口的 内部宽度 和 高度不包括 浏览器的 边框、菜单栏、工具栏 等)。这些属性是在 浏览器视口(viewport)的概念下 使用的,它们表示 用户实际看到 网页内容的 区域大小

outerWidthouterHeight

浏览器窗口的 整个外部尺寸包括 浏览器的边框、菜单栏、工具栏等所有部分。这些属性的值取决于 浏览器的 具体设置 和 操作系统的 外观。

window.screen.widthwindow.screen.height

screen 对象 相关属性(与 屏幕尺寸 相关),它 返回 用户屏幕 的 宽度 和 高度(整个屏幕的 物理尺寸,而不是 浏览器窗口尺寸)。这在需要考虑 屏幕大小 来进行 布局优化 或者根据 屏幕分辨率 提供 不同内容 时很有用。

2 location 对象

location 对象 用于 获取设置 当前窗口的 URL(Uniform Resource Locator)相关信息。

3 navigator 对象

navigator 对象 包含了 有关 浏览器 的 信息,还可以 获取 浏览器 的 语言偏好 等信息。

4 history 对象

history 对象 用于 操作浏览器的 历史记录。它允许用户 在历史记录中 前进后退

还可以使用 history.pushState(state, title, url) 方法 来向 历史记录中 添加 一个 新的状态。这在 单页应用(SPA)中很有用,通过 改变 URL 而 不进行实际的 页面刷新 来模拟 多页应用的 URL 行为。

  • state 是一个与 新状态 相关的 对象
  • title页面标题(目前大多数浏览器忽略这个参数);
  • url 是新的 URL

BOM 的事件

BOM 还涉及到一些与 浏览器 相关的 事件

window.onload 事件

整个页面(包括 所有的外部资源,如图片、脚本等)加载完成后 会触发 这个事件。可以在这个事件中 编写代码来 初始化页面

// 示例代码 1
window.onload = function() {
   // 在这里执行页面加载完成后的初始化操作
   var element = document.getElementById("myElement");
   element.style.color = "red";
};

window.resize 事件

浏览器窗口大小 发生变化时 会触发。可以利用这个事件来 调整页面布局元素的 大小,以 适应窗口的 变化。

// 示例代码 2
window.onresize = function() {
   var width = window.innerWidth;
   var height = window.innerHeight;
   console.log("窗口大小已改变,新宽度为:" + width + ",新高度为:" + height);
};