当前位置: 首页 > news >正文

BOM(Browser Object Model)核心对象手册

BOM(Browser Object Model)核心对象手册

核心概念:BOM 提供与浏览器交互的接口,顶层对象为 window(全局作用域)。


1. window 对象 🌐

地位:BOM 顶层对象,全局变量/函数均为其属性。
核心功能

// 窗口控制
window.open('url')      // 打开新窗口
window.close()          // 关闭当前窗口
window.resizeTo(w, h)   // 调整窗口尺寸
window.moveTo(x, y)     // 移动窗口位置// 对话框
alert('消息')            // 警告框
confirm('确定吗?')      // 确认框(返回布尔值)
prompt('输入内容')       // 输入框(返回字符串)// 定时器
const timer = setTimeout(callback, delay)  // 单次执行
const interval = setInterval(callback, delay) // 循环执行
clearTimeout(timer)     // 清除定时器
clearInterval(interval)// 滚动与焦点
window.scrollTo(0, 100) // 滚动到指定位置
window.scrollBy(0, 20)  // 相对当前位置滚动
window.focus()          // 窗口聚焦// 事件监听
window.onload = () => { /* 页面加载完成 */ }
window.onresize = () => { /* 窗口大小变化 */ }

关键属性

  • window.innerWidth / window.innerHeight:视口尺寸
  • window.scrollX / window.scrollY:页面滚动距离

2. navigator 对象 🔍

作用:获取浏览器/操作系统信息。
常用属性

navigator.userAgent     // 浏览器标识(如 "Mozilla/5.0 ...")
navigator.platform      // 操作系统(如 "Win32")
navigator.language      // 浏览器首选语言(如 "zh-CN")
navigator.onLine        // 网络状态(布尔值)
navigator.geolocation   // 地理位置接口
navigator.clipboard     // 剪贴板操作接口

3. location 对象 📍

作用:操作或解析当前 URL。
URL 解析属性

https://www.example.com:8080/path?key=value#section
└─ protocol: "https:"         // 协议
└─ host: "www.example.com:8080" // 主机+端口
└─ hostname: "www.example.com" // 主机名
└─ port: "8080"              // 端口
└─ pathname: "/path"         // 路径
└─ search: "?key=value"      // 查询参数
└─ hash: "#section"          // 锚点

导航方法

location.assign('new.html')   // 跳转(保留历史记录)
location.replace('new.html')  // 替换当前页(无历史记录)
location.reload()             // 重新加载(true 强制忽略缓存)

4. history 对象 ⏪⏩

作用:管理浏览器历史记录(SPA 核心)。
方法与事件

// 基础导航
history.back()          // 后退
history.forward()       // 前进
history.go(-2)          // 后退 2 页// SPA 路由控制
history.pushState(state, '', '/new-url')   // 添加历史记录
history.replaceState(state, '', '/update') // 替换当前记录// 监听导航事件
window.onpopstate = (e) => {console.log(e.state)  // 获取 pushState 传入的 state
}

5. screen 对象 💻

作用:获取屏幕信息。
关键属性

screen.width            // 屏幕总宽度(像素)
screen.height           // 屏幕总高度
screen.availWidth       // 可用宽度(除任务栏等)
screen.availHeight      // 可用高度
screen.colorDepth       // 颜色深度(如 24 位)

其他重要说明

  1. document 对象
    • 属于 DOM(通过 window.document 访问),非 BOM 直接部分。
  2. frames 对象
    • 访问 <iframe> 或旧式 <frame> 的窗口对象(window.frames[0])。
  3. BOM 非标准化
    • 无统一标准(不同于 DOM),部分属性(如 navigator 扩展)可能存在浏览器差异。

复习要点总结

对象核心用途关键 API
window全局操作/窗口控制/定时器open(), setTimeout(), onload
navigator浏览器环境信息userAgent, geolocation, clipboard
locationURL 解析与导航href, search, assign(), reload()
history历史记录管理(SPA 核心)pushState(), replaceState(), onpopstate
screen屏幕属性获取availWidth, availHeight

💡 提示:BOM 操作需注意浏览器兼容性,推荐使用 Can I use 查询支持情况。

相关文章:

  • Windows设置之网络路由
  • Vue2面试题(一)
  • Java核心技术-卷I-读书笔记(第十二版)
  • 从0开始学习R语言--Day20-ARIMA与格兰杰因果检验
  • OpenJudge | 大整数乘法
  • 热成像实例分割电力设备数据集(3类,838张)
  • CMS内容管理系统的设计与实现:架构设计
  • DeepSeek11-Ollama + Open WebUI 搭建本地 RAG 知识库全流程指南
  • ABP vNext 与 HDFS 数据湖存储集成
  • DiscuzX3.5发帖json api
  • QEMU源码全解析 —— 块设备虚拟化(24)
  • eBPF系列--BCC中提供的BPF maps高级抽象如何映射到内核的BPF maps?
  • 第23讲、Odoo18 二开常见陷阱
  • 如何思考?思维篇
  • 数学:”度量空间”了解一下?
  • STM标准库-TIM旋转编码器
  • Spark流水线+Gravitino+Marquez数据血缘采集
  • 1 Studying《蓝牙核心规范5.3》
  • MyBatis原理剖析(二)
  • DeepSeek10-RAG相关模型知识说明
  • 浙江省城乡和住房建设厅网站首页/网站分析
  • 云主机做网站域名打不开/平台推广引流怎么做
  • 真人性做爰video网站/宁德市医院东侨院区
  • 校园网站建设说明书/网络销售平台有哪些
  • 网页设计ppt演讲/seo黑帽技术工具
  • 网站建设实训报告心得体会/b2b有哪些电商平台