BOM和DOM

1.关于BOM

BOM是浏览器对象模型,BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关;主要是用来获取或设置浏览器的属性和行为,比如打开窗口、关闭页面、获取浏览器的宽高度等。

window.open();//打开窗口
window.colose();//关闭窗口
console.log(window.innerWidth);//获取浏览器的宽度
console.log(window.innerHeight);//获取浏览器的高度

BOM是由navigator、history、screen、location、window五个对象组成的,最根本对象是window。

2.关于DOM

DOM是文档对象模型,HTML 和 XML 的应用程序接口(API),用来获取或设置文档中标签的属性,和HTML网页有关。网页是由服务器发送给客户端浏览器的,无论用什么浏览器,接收到的HTML都是一样的,所以DOM和浏览器无关,它关注的是网页本身的内容。

document.getElementById();//根据ID获取一个标签
document.getElementByClassName();//根据Class名获取
document.getElementByTagName();//根据标签名获取一个标签集

DOM最根本对象是document(实际上是window.document)。

3.BOM和DOM的区别

DOM描述了处理网页内容的方法和接口,与浏览器无关;BOM描述了与浏览器进行交互的方法和接口,与浏览器关系密切。
DOM的最根本对象是document,BOM的最根本对象是window。

### BOM DOM 的区别 BOM(Browser Object Model,浏览器对象模型) DOM(Document Object Model,文档对象模型)是 Web 开发中两个重要的概念,它们分别用于操作浏览器窗口网页内容。 #### 定义与功能 BOM 提供了一组 API,允许开发者通过 JavaScript 与浏览器进行交互[^4]。其核心对象是 `window`,它代表了浏览器窗口,并提供了许多属性方法来操作窗口、导航、处理事件等。例如,`window.location.href` 可以用于跳转页面,而 `window.alert()` 则可以显示弹窗[^5]。 DOM 是 W3C 的标准,关注的是网页本身的内容,如 HTML 文档的结构内容。它提供了一个树状结构的接口,使得开发者可以通过编程方式访问操作文档中的元素。例如,使用 `document.getElementById()` 可以获取特定的 HTML 元素,并对其进行样式修改或添加事件监听器等操作[^1]。 #### 联系 尽管 BOM DOM 在功能上有所不同,但它们之间存在紧密的联系。BOM 中的 `document` 对象是访问操作 DOM 的入口点。通过 `document` 对象,开发者可以获取文档中的元素、修改元素的样式、添加事件监听等。此外,BOM 的一些方法也可以用于操作或修改 DOM,例如 `window.open()` 方法可以用于打开一个新的浏览器窗口,并加载指定的 URL[^2]。 #### 标准化与兼容性 BOM 没有相关的标准,不同的浏览器实现同一功能可能需要不同的实现方式。这导致了在不同浏览器中使用 BOM 时可能会遇到兼容性问题。相反,DOM 是 W3C 的标准,因此具有统一的处理方式,确保了跨浏览器的一致性[^3]。 #### 示例代码 以下是一个简单的示例,展示了如何使用 BOM DOM 进行基本的操作: ```javascript // 使用 BOM 修改页面位置 window.location.href = "https://www.example.com"; // 使用 DOM 获取并修改元素内容 var element = document.getElementById("myElement"); element.innerHTML = "新的内容"; ``` 上述代码中,第一部分利用了 BOM 的 `window.location.href` 属性来改变当前页面的位置;第二部分则利用了 DOM 的 `document.getElementById` 方法来获取一个 HTML 元素,并修改其内部文本。
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值