BOM
BOM(Browser Object Model,浏览器对象模型)是一组与浏览器窗口交互的对象和方法集合,用于控制浏览器行为、获取浏览器信息和处理用户交互。
核心对象
| 对象 | 说明 |
|---|---|
window |
BOM顶级对象,代表整个浏览器窗口 |
navigator |
包含浏览器信息(用户代理、版本等) |
screen |
提供屏幕信息(宽度、高度、颜色深度) |
location |
管理URL信息(主机名、路径、参数) |
history |
操作浏览器历史记录 |
常用方法
// 对话框
alert("提示信息"); // 显示警告框
confirm("确定删除?"); // 显示确认框,返回布尔值
prompt("输入姓名", "默认"); // 显示输入框,返回字符串
// 定时器
setTimeout(fn, 1000); // 延迟执行
setInterval(fn, 1000); // 循环执行
clearTimeout(id); // 取消延迟执行
clearInterval(id); // 取消循环执行
实用示例
// 获取浏览器信息
console.log(navigator.userAgent);
// 获取屏幕信息
console.log(screen.width, screen.height);
// 获取URL信息
console.log(location.href);
console.log(location.hostname);
// 操作历史记录
history.back(); // 后退
history.forward(); // 前进
DOM
DOM(Document Object Model,文档对象模型)以树形结构表示HTML文档,每个HTML元素都是树中的一个节点。
获取元素
document.getElementById("id"); // ID获取
document.getElementsByClassName("class"); // 类名获取
document.getElementsByTagName("div"); // 标签名获取
document.querySelector(".class"); // CSS选择器(首个)
document.querySelectorAll("p"); // CSS选择器(全部)
操作内容
// 修改HTML或文本内容
element.innerHTML = "<strong>加粗</strong>";
element.textContent = "纯文本";
// 修改属性
element.setAttribute("data-id", "123");
let value = element.getAttribute("data-id");
// 修改样式
element.style.color = "red";
element.style.fontSize = "16px";
创建与删除元素
// 创建元素
let p = document.createElement("p");
p.textContent = "新段落";
// 添加元素
document.body.appendChild(p); // 追加到末尾
parent.insertBefore(p, reference); // 插入到指定位置
// 删除元素
p.parentNode.removeChild(p);
事件处理
// 绑定事件
element.addEventListener("click", function() {
alert("点击了!");
});
// 移除事件
element.removeEventListener("click", handler);
// 常用事件类型
"click" // 点击
"mouseover" // 鼠标进入
"mouseout" // 鼠标离开
"submit" // 表单提交
"keydown" // 键盘按下
综合示例
<!DOCTYPE html>
<html>
<head>
<title>DOM操作示例</title>
<style>.highlight { background-color: yellow; }</style>
</head>
<body>
<h1 id="title">Hello</h1>
<button id="btn">点击</button>
<ul id="list">
<li>项目1</li>
<li>项目2</li>
</ul>
<script>
const title = document.getElementById("title");
const btn = document.getElementById("btn");
const items = document.querySelectorAll("#list li");
// 修改内容与样式
title.innerHTML = "<strong>你好!</strong>";
title.style.color = "blue";
// 添加点击事件
btn.addEventListener("click", () => alert("按钮点击了!"));
// 动态创建元素
const newP = document.createElement("p");
newP.textContent = "新段落";
document.body.appendChild(newP);
// 列表项悬停效果
items.forEach(item => {
item.addEventListener("mouseover", () => item.classList.add("highlight"));
item.addEventListener("mouseout", () => item.classList.remove("highlight"));
});
</script>
</body>
</html>
通过BOM和DOM,JavaScript能够与浏览器环境进行交互、控制浏览器行为、动态操作网页内容,从而实现丰富的用户交互体验。