zoukankan      html  css  js  c++  java
  • BOM和DOM两者概要(整理转载)

    DOM(文档对象模型(Document Object Model))

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

    BOM:(Browser Object Mode) 浏览器对象模型

    核心是window对象;

    以下有特殊双重身份:

    window对象既是ECMAScript规范中的Global对象,也是BOM中的顶级对象;

    document对象既是BOM顶级对象的一个属性,也是DOM模型中的顶级对象

    location对象既是window对象的属性,同时也是document对象的属性。

    1. window对象   (从两个方面看待:ECMAScript规范中的Global对象,也是BOM中的顶级对象)

     

    1.1 window作为ECMAScript中的Global对象

       1_引用window对象的属性和方法时,可以省略window。(就像Globle对象一样)

       2_在全局作用域中this和window指向同一个对象,另外,还可以使用self来引用window对象,全等关系即:this===window===self。

       3_在全局作用域中定义的变量和函数也会成为window对象的属性和方法,但是和直接在window对象上定义属性还是有区别:

      a、全局变量不能使用delete删除(相当于给window定义属性时将属性特性[[Configurable]]赋值为false了),

                直接在window对象上定义的属性可以使用delete删除(直接定义window对象时属性特性[[Configurable]]赋值默认为true)。

                如果同时定义了全局变量和window对象的属性,则删除window属性时不起作用。

      b、尝试访问未定义的全局变量会抛出异常,但是访问未定义的window对象的属性则只是返回undefined。(这里可以很好地利用此特性进行检测兼容性)

    1.2 window作为BOM中的顶级对象

    1.2.1  浏览器整个窗口与框架

          没有子框架时:window、self、top和parent都相等,都是指最顶层框架,即浏览器窗口。

          有子框架时:window、self 和 top 都为最顶层框架,parent指向当前框架的直接上层框架.

      

           如果页面中包含框架,则每个框架都有自己的window对象,并且保存在父窗口的frames集合中.

          可以通过索引(从0开始,从左至右,从上至下)或者框架名称name属性访问相应的window对象。每个window对象都有一个name属性,表示所处框架的名称。

  • 相关阅读:
    兼容ie10及以上css3加载进度动画
    MySQL的安装
    VSFTPD+MYSQL+PAM
    58.省市联动-json
    省市联动
    56.检验特殊字符
    55.全选2
    54.截取字符串的思想实现输入框字数限制
    网络截取文件名
    lastPathComponent的功能
  • 原文地址:https://www.cnblogs.com/chaoquan/p/7451881.html
Copyright © 2011-2022 走看看