欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 前端技术 > javascript >内容正文

javascript

javascript / dom、bom、document、window 区别和联系 -ag凯发k8国际

发布时间:2024/10/14 javascript 30 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 javascript / dom、bom、document、window 区别和联系 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
作者:vkki 链接:https://www.zhihu.com/question/33453164/answer/56549408 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我试着用通俗的语言解释一下。

这几个都是 js 里面的概念。

一、dom

dom 全称是 document object model,也就是文档对象模型。

dom 就是针对 html 和 xml 提供的一个api。什么意思?就是说为了能以编程的方法操作这个 html 的内容(比如添加某些元素、修改元素的内容、删除某些元素),我们把这个 html 看做一个对象树(dom树),它本身和里面的所有东西比如

这些标签都看做一个对象,每个对象都叫做一个节点(node),节点可以理解为 dom 中所有 object 的父类。

dom 有什么用?就是为了操作 html 中的元素,比如说我们要通过 js 把这个网页的标题改了,直接这样就可以了:

document.title = 'how to make love';

这个 api 使得在网页被下载到浏览器之后改变网页的内容成为可能。

二、document

当浏览器下载到一个网页,通常是 html,这个 html 就叫 document(当然,这也是 dom 树中的一个 node),从上图可以看到,document 通常是整个 dom 树的根节点。这个 document 包含了标题(document.title)、url(document.url)等属性,可以直接在 js 中访问到。

在一个浏览器窗口中可能有多个 document,例如,通过 iframe 加载的页面,每一个都是一个 document。

在 js 中,可以通过 document 访问其子节点(其实任何节点都可以),如

document.body; document.getelementbyid('xxx');

三、bom
 

bom 是 browser object model,浏览器对象模型。

刚才说过 dom 是为了操作文档出现的接口,那 bom 顾名思义其实就是为了控制浏览器的行为而出现的接口。浏览器可以做什么呢?比如跳转到另一个页面、前进、后退等等,程序还可能需要获取屏幕的大小之类的参数。所以 bom 就是为了解决这些事情出现的接口。比如我们要让浏览器跳转到另一个页面,只需要

location.href = "http://www.xxxx.com";

这个 location 就是 bom 里的一个对象。

四、window

window 也是 bom 的一个对象,除去编程意义上的“兜底对象”之外,通过这个对象可以获取窗口位置、确定窗口大小、弹出对话框等等。例如我要关闭当前窗口:

window.close();

五、总结

dom 是为了操作文档出现的 api,document 是其的一个对象;
bom 是为了操作浏览器出现的 api,window 是其的一个对象。

 

(saw:game over!)

总结

以上是ag凯发k8国际为你收集整理的javascript / dom、bom、document、window 区别和联系的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图