news 2026/7/1 11:07:48

HoRain云--深入解析JavaScript BOM:掌控浏览器窗口的秘密

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--深入解析JavaScript BOM:掌控浏览器窗口的秘密

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

JavaScript Window - 浏览器对象模型(BOM)

基本概念

Window对象的核心地位

BOM与DOM的关系

Window对象的主要功能

1. 文档访问

2. 窗口管理

3. 对话框

4. 导航控制

5. 浏览器信息检测

6. 屏幕信息

Window对象的常用属性

BOM的兼容性考虑

实用示例

总结


JavaScript Window - 浏览器对象模型(BOM)

基本概念

浏览器对象模型(Browser Object Model,简称BOM)是JavaScript与浏览器窗口进行交互的一套API。它没有官方标准,但现代浏览器已实现了通用方法和属性,使BOM成为前端开发中控制浏览器行为的核心机制。

BOM的核心是Window对象,它代表浏览器窗口本身,是JavaScript的全局对象。所有全局变量、函数和对象都自动成为Window对象的属性和方法。

Window对象的核心地位

BOM与DOM的关系

特性DOM (Document Object Model)BOM (Browser Object Model)
关注点网页文档内容(HTML/XML结构)浏览器窗口和环境
根对象document对象window对象
标准化由W3C严格标准化没有官方标准,但浏览器实现趋于一致
交互对象操纵网页中的HTML元素、属性、样式操控浏览器窗口、历史、URL、屏幕等

简单来说:DOM让你控制网页内容,BOM让你控制浏览器

Window对象的主要功能

1. 文档访问

2. 窗口管理

3. 对话框

4. 导航控制

5. 浏览器信息检测

6. 屏幕信息

Window对象的常用属性

属性说明
innerWidth/innerHeight浏览器窗口内部宽度和高度(不包括工具栏和滚动条)
outerWidth/outerHeight浏览器窗口外部宽度和高度(包括边框)
scrollX/scrollY窗口水平和垂直滚动位置
location当前URL信息对象
history浏览器历史记录对象
navigator浏览器和设备信息对象
screen屏幕信息对象

BOM的兼容性考虑

由于BOM没有官方标准,不同浏览器对某些功能的支持可能有差异:

实用示例

// 获取窗口尺寸(兼容所有浏览器) var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; // 打开新窗口 var newWindow = window.open('https://example.com', '_blank', 'width=500,height=400'); // 获取浏览器信息 console.log("浏览器类型: " + navigator.userAgent); console.log("操作系统: " + navigator.platform); // 导航到新页面 window.location.href = 'https://newpage.com';

总结

BOM是JavaScript与浏览器交互的核心机制,Window对象作为BOM的顶层对象,提供了控制浏览器窗口、获取浏览器信息、管理URL和历史记录等关键功能。理解BOM对于前端开发者实现窗口控制、用户体验优化和浏览器环境检测至关重要。尽管BOM没有官方标准,但现代浏览器已实现了通用的API,使BOM成为前端开发中不可或缺的工具。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 16:09:03

L3 层工位执行状态持久化设计原理

L3 中的工位(Segment)是一个运行对象,其执行状态描述的是该对象在生产运行中的阶段性事实。 状态本身具有以下特征:离散、有限、可枚举与执行生命周期严格绑定具有恢复与追溯价值因此,状态必须以持久化对象的形式存在。…

作者头像 李华
网站建设 2026/7/1 13:50:27

零配置启动Qwen3-0.6B,开箱即用太省心

零配置启动Qwen3-0.6B,开箱即用太省心 你是不是也经历过这样的场景:兴冲冲下载了一个大模型,结果光是环境配置就花了半天时间?依赖冲突、版本不兼容、API调不通……还没开始用就已经想放弃了。今天要介绍的 Qwen3-0.6B 镜像彻底改…

作者头像 李华
网站建设 2026/6/29 0:04:02

【学习写作】动作序列

动作序列写作教程:让动作活起来的秘诀 基于文学创作的核心规律与权威写作理论,本教程系统拆解叙事动作的表达体系,聚焦“动作单元 → 动作序列 → 动作链”三层结构,从核心逻辑到实操模式,再到场景化案例,层…

作者头像 李华
网站建设 2026/6/29 7:50:03

看完就想试!CAM++打造的说话人识别效果太震撼

看完就想试!CAM打造的说话人识别效果太震撼 你有没有遇到过这样的场景:一段录音里有多个声音,但你无法确定是不是同一个人说的?或者你想验证某段语音是否来自某个特定的人,却苦于没有专业工具?现在&#x…

作者头像 李华
网站建设 2026/6/17 9:03:27

BERT模型填空准确率低?上下文优化部署案例提升80%

BERT模型填空准确率低?上下文优化部署案例提升80% 1. 问题来了:为什么你用的BERT填空总是“猜不准” 你是不是也遇到过这种情况: 输入“春风又绿江南岸,明月何时照我[MASK]”,模型却返回“家(32%&#xf…

作者头像 李华
网站建设 2026/6/19 11:07:20

Qwen3-0.6B生产部署实战:日志监控与异常处理机制搭建

Qwen3-0.6B生产部署实战:日志监控与异常处理机制搭建 1. 为什么小模型也需要严谨的日志与异常体系? 很多人第一反应是:“Qwen3-0.6B才不到10亿参数,跑在单卡A10甚至RTX4090上都绰绰有余,还要搞什么日志监控&#xff…

作者头像 李华