一、BOM 的组成
BOM 由三个主要对象组成:
- 页面对象(window 对象):代表当前的浏览器窗口或标签页。它提供了访问和操作窗口中各种属性和功能的方法和属性,如窗口的标题、尺寸、位置、滚动条等。
- 窗口对象(window 对象):代表浏览器窗口中的一个独立的框架或区域。它提供了访问和操作框架中各种属性和功能的方法和属性,如框架的标题、尺寸、位置、滚动条等。
- 文档对象(document 对象):代表当前载入到浏览器窗口或框架中的 HTML 文档。它提供了访问和操作文档中各种元素和内容的方法和属性,如文档的标题、URL、内容、表单元素等。
BOM 还包括了一些其他对象,如屏幕对象(screen 对象)、导航对象(navigator 对象)、历史对象(history 对象)等,这些对象提供了访问和操作浏览器和网页中各种信息和功能的方法和属性。
二、BOM 的作用
BOM 允许 JavaScript 脚本与浏览器以及浏览器中的网页进行交互,从而实现各种功能,包括:
- 控制浏览器窗口和标签页:可以创建、关闭、移动、调整大小和滚动浏览器窗口和标签页。
- 访问和操作浏览器和网页中的信息:可以获取浏览器的名称和版本、当前网页的 URL 和标题、网页中的文本内容和元素等。
- 操作浏览器和网页中的元素:可以获取、设置和修改网页中的元素的属性和样式,如元素的文本内容、背景颜色、字体大小等。
- 监听和处理浏览器和网页中的事件:可以为浏览器和网页中的元素添加事件监听器,并在事件发生时执行相应的脚本代码。
- 与服务器进行通信:可以使用内置的XMLHttpRequest 对象与服务器进行HTTP请求,实现异步数据交互。
演示代码:
// 访问和操作窗口对象
// 获取当前窗口的标题
var title = window.document.title;
// 设置当前窗口的标题
window.document.title = "新标题";
// 获取当前窗口的尺寸
var width = window.innerWidth;
var height = window.innerHeight;
// 设置当前窗口的尺寸
window.resizeTo(800, 600);
// 获取当前窗口的位置
var left = window.screenX;
var top = window.screenY;
// 设置当前窗口的位置
window.moveTo(100, 100);
// 访问和操作文档对象
// 获取当前文档的URL
var url = document.URL;
// 获取当前文档的内容
var body = document.body.innerHTML;
// 设置当前文档的内容
document.body.innerHTML = "新内容";
// 获取当前文档的标题
var title = document.title;
// 设置当前文档的标题
document.title = "新标题";
// 操作浏览器和网页中的元素
// 获取网页中的第一个元素
var element = document.getElementsByTagName("p")[0];
// 获取元素的文本内容
var text = element.innerHTML;
// 设置元素的文本内容
element.innerHTML = "新文本";
// 获取元素的背景颜色
var color = element.style.backgroundColor;
// 设置元素的背景颜色
element.style.backgroundColor = "red";
// 监听和处理浏览器和网页中的事件
// 为窗口添加一个点击事件监听器
window.addEventListener("click", function() {
alert("窗口被点击了!");
});
// 为网页中的第一个元素添加一个鼠标悬停事件监听器
element.addEventListener("mouseover", function() {
alert("元素被悬停了!");
});
// 与服务器进行通信
// 创建一个XMLHttpRequest对象
var xhr = new XMLHttpRequest();
// 打开一个HTTP请求
xhr.open("GET", "data.json");
// 发送HTTP请求
xhr.send();
// 监听HTTP请求的响应
xhr.onload = function() {
// 获取HTTP请求的响应数据
var data = xhr.responseText;
// 将响应数据解析为JSON对象
var json = JSON.parse(data);
// 使用JSON对象中的数据
console.log(json.name);
};
以上演示代码展示了如何使用 BOM 来访问和操作浏览器和网页中的各种信息和功能。