DOM(文档对象模型)
DOM 是浏览器提供的一种操作网页内容和结构的 API,它将 Web 页面表示为一个树形结构,其中每一个 HTML 元素都是一个节点,可以通过 DOM API 对其进行访问和操作。DOM API 包括了一系列方法和属性,可以用来修改网页的内容、样式和结构,实现动态效果和用户交互。
DOM 树的根节点是 document
对象,它代表了整个 HTML 文档,可以通过 document
对象访问到 HTML 元素、文本节点、属性节点等。
DOM API 可以分为以下几类:
-
节点遍历和选择器:通过
document
对象的方法和属性,可以遍历和选择 DOM 树中的节点,如getElementById()
、getElementsByTagName()
、querySelector()
、querySelectorAll()
等。 -
节点操作:通过
document
对象的方法和属性,可以对 DOM 树中的节点进行操作,如createElement()
、appendChild()
、insertBefore()
、removeChild()
、setAttribute()
、getAttribute()
等。 -
样式操作:通过
document
对象的 CSS 属性,可以对 DOM 元素的样式进行操作,如style
、className
、classList
等。 -
事件处理:通过
document
对象的事件处理属性和方法,可以对 DOM 元素的事件进行处理,如onclick
、onmouseover
、addEventListener()
、removeEventListener()
等。
BOM(浏览器对象模型)
BOM 是浏览器提供的一种操作浏览器窗口和其他浏览器相关的对象的 API,它包括了窗口、文档、历史记录、位置、屏幕等对象,可以通过 BOM API 对其进行访问和操作。BOM API 包括了一系列方法和属性,可以用来控制浏览器的行为、操作浏览器窗口、获取用户信息等。
BOM API 可以分为以下几类:
-
窗口操作:通过
window
对象的方法和属性,可以对浏览器窗口进行操作,如open()
、close()
、resizeTo()
、moveTo()
等。 -
文档操作:通过
document
对象的方法和属性,可以对浏览器文档进行操作,如write()
、writeln()
、cookie
、readyState
等。 -
历史记录操作:通过
history
对象的方法和属性,可以对浏览器的历史记录进行操作,如back()
、forward()
、go()
等。 -
位置操作:通过
location
对象的方法和属性,可以获取当前页面的 URL 和对 URL 进行操作,如href
、protocol
、hostname
、pathname
等。 -
屏幕操作:通过
screen
对象的方法和属性,可以获取屏幕的信息,如width
、height
、colorDepth
、availWidth
、availHeight
等。
需要注意的是,BOM API 并没有被标准化,不同浏览器的实现可能会有所不同,因此在使用 BOM API 时要特别注意浏览器兼容性问题。
总之,DOM 和 BOM 是 Web 开发中两个重要的概念,分别代表了文档对象模型和浏览器对象模型。通过使用 DOM 和 BOM API,可以对 Web 页面和浏览器进行灵活的操作和控制,实现更丰富、更复杂的 Web 应用程序。