当前位置: 首页 > 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 查询支持情况。

http://www.xdnf.cn/news/937495.html

相关文章:

  • CNN核心机制深度解析:卷积池化原理 PyTorch实现经典网络
  • MSYS2 环境配置与 Python 项目依赖管理笔记
  • Z-FOLD: A Frustratingly Easy Post-Training Quantization Scheme for LLMs
  • MS39531N 是一款正弦驱动的三相无感直流电机驱动器,具有最小振动和高效率的特点
  • 深入理解 Java 的反射、注解与动态代理
  • 基于Python学习《Head First设计模式》第十章 状态模式
  • JavaScript数组扁平化(Array Flattening)全解析:从基础到进阶的9种实现方式及深度对比
  • C++.OpenGL (17/64)深度测试(Depth Testing)
  • Python Wheel 打包基本原理详解
  • LangChain工具集成实战:构建智能问答系统完整指南
  • RoboDK 自定义机器人
  • 当前市场环境下,软件行业的突围之道:技术演进与商业模式重构
  • 工厂方法模式和抽象工厂方法模式的battle
  • 135. 分发糖果
  • 【P2P】直播网络拓扑及编码模式
  • 【2025年6月8日】Claude 4 国内使用全攻略
  • 【优选算法】模拟 问题算法
  • CompletableFuture+线程池使用案列
  • 直观地理解程序的堆和栈
  • Go 语言中的内置运算符
  • LLMs之Structured Output:vLLM 结构化输出指南—从约束生成到自动解析与高效实现
  • 算法工程师认知水平要求总结
  • (javaEE)网络原理-初识 局域网和广域网 ip地址和端口号 协议 五元组 协议分层 OSI七层模型 网络数据通信的基本流程
  • (二)原型模式
  • AI短视频创富营
  • Go语言系统监控实战:gopsutil库全面解析与应用
  • nginx部署
  • K8S认证|CKS题库+答案| 8. 沙箱运行容器 gVisor
  • 安装Openstack
  • 编程技巧(基于STM32)第二章 全功能按键非阻塞式实现按键单击、双击和长按