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属性,表示所处框架的名称。

 

posted @ 2017-08-30 10:35  彩色积雨云  阅读(215)  评论(0编辑  收藏  举报