27、什么是DOM和BOM

本文介绍了DOM(文档对象模型)和BOM(浏览器对象模型)。DOM通过创建树表示文档,可用DOM API操作节点;BOM描述与浏览器交互的方法和接口,核心是window对象。还阐述了二者联系,即DOM的document是BOM的window子对象,也说明了它们在描述内容上的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、DOM

DOM (Document ),简称文档对象模型。通过创建树来表示文档,描述了处理网页内容的方法和接口。用DOM API可以轻松地删除、添加和替换节点。

DOM操作举例:

1)访问节点

document.getElementById( "ID" )通过指定的 ID 来返回元素
document.getElementByName( "name" )获取所有name特性等于指定值的元素
document.getElementsByTagName( "p" )使用指定的标签名返回所有的元素列表
document.documentElement返回存在于 XML 以及 HTML 文档中的文档根节点

2)节点的操作

creatElement(element)创建一个新的元素节点
appendChild()在节点列表后 添加一个新的子节点
removeChild()从一个给定元素中删除子节点

 

例如:将HTML代码分解为DOM节点层次图

HTML文档可以说由DOM节点构成的集合,DOM节点有:

元素节点上图中<html>、<body>、<p>等都是元素节点,即标签。
 文本节点向用户展示的内容,如<li>...</li>中的JavaScript、DOM、CSS等文本
属性节点元素属性,如<a>标签的链接属性href="http://www.baidu.com"

2、BOM

BOM (browser object model),简称浏览器对象模型描述了与浏览器进行交互的方法和接口

BOM核心是window,而window对象又具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是一个Global(全局)对象。这意味着在网页中定义的任何对象,变量和函数,都以window作为其global对象。

通常浏览器特定的JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括:

  1. 弹出新的浏览器窗口
  2. 移动、关闭浏览器窗口以及调整窗口大小
  3. 提供 Web 浏览器详细信息的定位对象
  4. 提供用户屏幕分辨率详细信息的屏幕对象
  5. 对 cookie 的支持
  6. IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaScript 实例化 ActiveX 对象

例如:

  • window.close(); //关闭窗口
  • window.alert( "message" ); //弹出一个具有OK按钮的系统消息框,显示指定的文本

3、DOM与BOM的联系和区别

1)联系

window.document已然可以看出,DOM的最根本的对象是BOM的window对象的子对象document。推理如下:

  1. js是通过访问BOM对象来访问、控制、修改客户端(浏览器)。
  2. 由于BOMwindow包含了documentwindow对象的属性和方法是可以直接使用而且被感知的,因此可以直接使用window对象的document属性,通过document属性就可以访问、检索、修改XHTML文档内容与结构。
  3. 因为document对象又是DOM模型的根节点,可以说BOM包含了DOM(对象)。
  4. 浏览器提供出来给予访问的是BOM对象从BOM对象再访问到DOM对象,从而js可以操作浏览器以及浏览器读取到的文档
  • Window对象包含属性:document、location、navigator、screen、history、frames
  • Document根节点包含子节点:forms、location、anchors、images、links

2)区别

DOM描述了处理网页内容的方法和接口,BOM描述了与浏览器进行交互的方法和接口。

<think>好的,我需要回答用户关于DOMBOM的概念及区别的问题。首先,我得确认自己对这两个术语的理解是否正确。DOM是文档对象模型,用于操作网页内容,而BOM是浏览器对象模型,用于与浏览器交互。接下来,我得结合提供的引用资料来组织答案。 根据引用[3],DOMBOM的window对象的子对象document,这说明BOM包含了DOM。引用[5]提到BOM的核心是window对象,提供了操作浏览器窗口的方法。而引用[1][2]指出DOM用于操作文档内容,BOM用于与浏览器交互。需要强调两者的标准化不同,DOM由W3C管理,而BOM缺乏标准,这点在引用[4]里有提到。 接下来要整理结构,先分别解释DOMBOM,然后比较它们的区别。可能需要分点说明:定义、功能、标准、包含关系等。还要确保使用正确的中文表达,并且按照用户要求使用$...$$$...$$格式,不过这个问题可能不需要数学公式,但如果有相关例子可能需要调整。例如,如果有代码示例的话,但用户的问题是关于概念,所以可能不需要。 最后生成相关问题,考虑用户可能想进一步了解应用场景、具体API或历史背景等。例如,DOM的操作方法,BOM的具体对象,或者它们在前端开发中的实际应用。 需要检查引用是否正确标注,每个引用的末尾添加对应的标识符。确保回答结构清晰,分点明确,帮助用户逐步理解两者的区别联系。同时,避免技术术语过于复杂,用简洁的中文解释概念。</think>### DOMBOM的概念及区别 #### 1. DOM(文档对象模型) **定义**:DOM(Document Object Model)是用于表示操作HTML/XML文档内容的编程接口。它将文档解析为一个由节点对象组成的结构化树形模型,允许开发者通过JavaScript动态修改页面内容、结构样式。 **功能**: - 操作网页元素(增删改查) - 响应事件(如点击、输入) - 修改CSS样式 - 核心对象为`document`,例如通过`document.getElementById()`获取元素[^3][^5]。 #### 2. BOM(浏览器对象模型) **定义**:BOM(Browser Object Model)是浏览器提供的与浏览器窗口及环境交互的接口,其核心对象是`window`,包含控制浏览器行为的方法属性。 **功能**: - 管理窗口尺寸、导航(如前进/后退) - 操作浏览器历史(`history`) - 获取屏幕信息(`screen`) - 处理弹窗(`alert`、`confirm`)[^1][^5]。 #### 3. 核心区别 | **维度** | **DOM** | **BOM** | |----------------|----------------------------------|----------------------------------| | **作用对象** | 文档内容(HTML/XML元素) | 浏览器窗口及环境(如地址栏、历史) | | **标准化** | 由W3C制定标准 | 缺乏统一标准,依赖浏览器实现[^4] | | **核心对象** | `document` | `window`(包含`history`、`location`等) | | **包含关系** | 属于BOM的一部分(通过`window.document`访问) | 包含DOM,提供访问文档的入口 | #### 4. 协作关系 - **典型场景**:通过BOM的`window`对象获取文档(DOM),例如修改页面标题: ```javascript window.document.title = "新标题"; // BOM操作window,DOM操作document ``` - **分工**:DOM负责页面内容交互,BOM负责浏览器行为控制[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值