• dom总结


    DOM

    文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。Document Object Model的历史可以追溯至1990年代后期微软与Netscape的“浏览器大战”,双方为了在JavaScript与JScript一决生死,于是大规模的赋予浏览器强大的功能。微软在网页技术上加入了不少专属事物,计有VBScript、ActiveX、以及微软自家的DHTML格式等,使不少网页使用非微软平台及浏览器无法正常显示。DOM即是当时蕴酿出来的杰作。

    根据W3C DOM规范,DOM是HTML与XML的应用编程接口(API),DOM将整个页面映射为一个由层次节点组成的文件。有1级、2级、3级共3个级别。

    1级DOM

    1级DOM在1998年10月份成为W3C的提议,由DOM核心与DOM HTML两个模块组成。DOM核心能映射以XML为基础的文档结构,允许获取和操作文档的任意部分。DOM HTML通过添加HTML专用的对象与函数对DOM核心进行了扩展。

    2级DOM

    鉴于1级DOM仅以映射文档结构为目标,DOM 2级面向更为宽广。通过对原有DOM的扩展,2级DOM通过对象接口增加了对鼠标和用户界面事件(DHTML长期支持鼠标与用户界面事件)、范围、遍历(重复执行DOM文档)和层叠样式表(CSS)的支持。同时也对DOM 1的核心进行了扩展,从而可支持XML命名空间。
    2级DOM引进了几个新DOM模块来处理新的接口类型:
    DOM视图:描述跟踪一个文档的各种视图(使用CSS样式设计文档前后)的接口;
    DOM事件:描述事件接口;
    DOM样式:描述处理基于CSS样式的接口;
    DOM遍历与范围:描述遍历和操作文档树的接口;

    3级DOM

    3级DOM通过引入统一方式载入和保存文档和文档验证方法对DOM进行进一步扩展,DOM3包含一个名为“DOM载入与保存”的新模块,DOM核心扩展后可支持XML1.0的所有内容,包括XML Infoset、 XPath、和XML Base。

    "0级"DOM

    当阅读与DOM有关的材料时,可能会遇到参考0级DOM的情况。需要注意的是并没有标准被称为0级DOM,它仅是DOM历史上一个参考点(0级DOM被认为是在Internet Explorer 4.0 与Netscape Navigator4.0支持的最早的DHTML)。

    DOM0级事件处理程序

    分为2个:一是在标签内写onclick事件

          二是在JS写onlicke=function(){}函数

    1)

    <input id="myButton" type="button" value="Press Me" onclick="alert('thanks');" >

    2)

    document.getElementById("myButton").onclick = function () {
        alert('thanks');
    }

    以下是分割线


     1级DOM--(为什么没有1级DOM)

    DOM级别1于1998年10月1日成为W3C推荐标准。1级DOM标准中并没有定义事件相关的内容,所以没有所谓的1级DOM事件模型。在2级DOM中除了定义了一些DOM相关的操作之外还定义了一个事件模型 ,这个标准下的事件模型就是我们所说的2级DOM事件模型 


     DOM2级事件处理程序

    只有一个:监听方法,有两个方法用来添加和移除事件处理程序:addEventListener()和removeEventListener()。

    它们都有三个参数:第一个参数是事件名(如click);

             第二个参数是事件处理程序函数;

               第三个参数如果是true则表示在捕获阶段调用,为false表示在冒泡阶段调用。

    • addEventListener():可以为元素添加多个事件处理程序,触发时会按照添加顺序依次调用。
    • removeEventListener():不能移除匿名添加的函数。
    document.getElementById("myTest").attachEvent("onclick", function(){alert(1)});
    //等价于
    document.getElementById("myTest").addEventListener("click", function(){alert(1)}, false);

    只有2级DOM包含3个事件:事件捕获阶段、处于目标阶段和事件冒泡阶段

    <span>
        <a></a>
    </span>

    点击a后capturing(捕捉)阶段事件传播会从document-> span->a,然后发生在a,最后bubbling(冒泡)阶段事件传播会从a->span->document 。

    1.事件冒泡(常用)

    IE中采用的事件流是事件冒泡,先从具体的接收元素,然后逐步向上传播到不具体的元素。

    2.事件捕获(少用)

    Netscapte采用事件捕获,先由不具体的元素接收事件,最具体的节点最后才接收到事件。

    3.DOM事件流

  • 相关阅读:
    bzoj 1217: [HNOI2003]消防局的设立
    [USACO09FEB]庙会班车Fair Shuttle
    bzoj 1052: [HAOI2007]覆盖问题
    bzoj 1974: [Sdoi2010]代码拍卖会
    bzoj 1835: [ZJOI2010]基站选址
    bzoj 1875: [SDOI2009]HH去散步
    bzoj 3295: [Cqoi2011]动态逆序对
    bzoj 2120: 数颜色
    P1032 字串变换
    简析拓扑排序
  • 原文地址:https://www.cnblogs.com/vervin/p/7234682.html
Copyright © 2020-2023  润新知