zoukankan      html  css  js  c++  java
  • DOM和BOM的区别与联系

    文档对象模型 (DOM):处理网页内容的方法和接口

    浏览器对象模型(BOM):与浏览器交互的方法和接口

    1. DOM 是 W3C的标准;[所有浏览器公共遵守的标准]

    2. BOM 是 各个浏览器厂商根据 DOM
    在各自浏览器上的实现;[表现为不同浏览器定义有差别,实现方式不同]
    3. window 是 BOM对象,而非js对象;

    DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API)。

    BOM 主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括:

    弹出新的浏览器窗口

    移动、关闭浏览器窗口以及调整窗口大小

    提供 Web 浏览器详细信息的定位对象

    提供用户屏幕分辨率详细信息的屏幕对象

    对 cookie 的支持

    IE 扩展了 BOM,加入了ActiveXObject类,可以通过JavaScript实例化ActiveX对象

    javacsript是通过访问BOM(Browser Object Model)对象来访问、控制、修改客户端(浏览器),由于BOM的window包含了document,window对象的属性和方法是直接可以使用而且被感知的,因此可以直接使用window对象的document属性,通过document属性就可以访问、检索、修改XHTML文档内容与结构。因为document对象又是DOM(Document Object Model)模型的根节点。可以说,BOM包含了DOM(对象),浏览器提供出来给予访问的是BOM对象,从BOM对象再访问到DOM对象,从而js可以操作浏览器以及浏览器读取到的文档。其中
    DOM包含:window

    Window对象包含属性:document、location、navigator、screen、history、frames

    Document根节点包含子节点:forms、location、anchors、images、links

    从window.document已然可以看出,DOM的最根本的对象是BOM的window对象的子对象。

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

    DOM定义了一个HTMLDocument和HTMLElement做为这种实现的基础,就是说为了能以编程的方法操作这个 HTML 的内容(比如添加某些元素、修改元素的内容、删除某些元素),我们把这个 HTML 看做一个对象树(DOM树),它本身和里面的所有东西比如 <div></div> 这些标签都看做一个对象,每个对象都叫做一个节点(node),节点可以理解为 DOM 中所有 Object 的父类。

     

    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 是其的一个对象。

  • 相关阅读:
    怎么把创业的风险降到最低
    反思:创业一开始并不需要重量级的产品
    口头承诺不如白纸黑字 技术大牛曹政(前4399核心员工)期权被坑的那些事
    idea配置tomcat去启动web项目
    Closeable释放资源
    Spring的SchedulingConfigurer实现定时任务
    thymeleaf js绑定多个变量参数
    Mysql concat() group_concat()用法
    枚举
    lambda之美
  • 原文地址:https://www.cnblogs.com/scg0624/p/9855540.html
Copyright © 2011-2022 走看看