图解BOM与DOM的区别、联系

区别

BOM(Browser Object Model)

BOM 即浏览器对象模型,BOM没有相关标准,BOM的最核心对象是window对象。windiw对象既为javascript访问浏览器提供API,同时在ECMAScript中充当Global对象。BOM和浏览器关系密切,浏览器很多东西可以通过javascript控制,例如打开窗口、打开选项卡、关闭页面、收藏夹等。这些功能与网页内容无关。由于没有标准,不同的浏览器实现同一功能,可以通过不同的实现方式。例如,加入收藏夹这个功能:

1
2
3
4
> IE浏览器: window.external.AddFavorite(url,title);
>
> FireFox浏览器: window.sidebar.addPanel(title, url, "");
>

>

虽然没有统一标准,但是各个浏览器的常用功能的js代码大同小异,对于常用的功能已经有默认的标准了。

DOM(Document Object Model)

DOM即文档对象模型,DOM是W3C标准,DOM的最根本对象是document(window.document),这个对象实际上是window对象的属性,这个对象的独特之处是这个是唯一一个既属于BOM又属于DOM的对象。DOM和文档有关,这里的文档指的是网页,也就是html文档。DOM和浏览器无关,他关注的是网页本身的内容,由于和浏览器没有多大的关系,所以标准就好定了。

BOM与DOM的联系

image.png

DOM (1).png

window.location

window.location只读属性,返回一个location对象,其中包含有关文档当前位置的信息。

导航到一个新页面

window.location.assign("http://www.baidu.com");回退可以返回上一个页面

window.location.replace("http://www.baidu.com");回退无法返回上一个页面

强制重新加载

window.location.reload()

属性

https://www.google.com.hk/search?q=window.location.assign+%E4%B8%8Ereplace%E7%9A%84%E5%8C%BA%E5%88%AB&oq=window.location.assign+%E4%B8%8Ereplace%E7%9A%84%E5%8C%BA%E5%88%AB&aqs=chrome..69i57.8461j0j4&sourceid=chrome&ie=UTF-8

location.host:“www.google.com.hk”

location.hostname:“www.google.com.hk”

location.href:https://www.google.com.hk/search?q=window.location.assign+%E4%B8%8Ereplace%E7%9A%84%E5%8C%BA%E5%88%AB&oq=window.location.assign+%E4%B8%8Ereplace%E7%9A%84%E5%8C%BA%E5%88%AB&aqs=chrome..69i57.8461j0j4&sourceid=chrome&ie=UTF-8

location.origin:https://www.google.com.hk

location.pathname:“/search”

location.protocol:“https:”

Reference - JavaScript学习:BOM和DOM的区别和关联

Reference - 图解:window与BOM的关系