首先JavaScript的组成:
- ECMAScript
- ECMAScript是一种脚本语言的标准,ECMAScript-262标准。
- 该标准不仅限于JavaScript语言的使用,例如ActionScript语言的标准也为ECMAScript标准。
- ECMAScript描述了以下内容:语法,类型,句子,关键字,保留字,运算符和对象。
- BOM:Browser Object Model,浏览器对象模型。
- DOM:Document Object Model,文档对象模型
浏览器对象模型介绍(如下图):
- 对上图的讲解
- Navigator对象:浏览器对象,它包含了正在使用的navigator(浏览器)的版本信息。JavaScript客户端运行时刻引擎自动创建navigator对象。
- Window对象:表示的是浏览器的窗口,最顶层对象。window的属性对应于整个窗口。
- Document对象:文档对象是JavaScript中window的frames对象的一个属性,是显示于窗口或框架内的一个文档。描述当前窗口或指定窗口对象的文档。它包含了文档从<head>到<body/>的内容。
- Links对象:是一个数组,包含了文档中所有连接标记(包含href属性的<a></a>标签),按文档的的次序,从0开始给每个连接标记定义了一个下标。
- Forms对象:是一个数组,包含文档中所有的表单(<form>)。要引用某个表单可以使用document.forms[0]。人们一般是在form表单中定义一个name属性,那么直接就document."表单名"就行。
- Images:是一个数组,document.images[],包含文档中所有图片(<img>)。
-
Archors对象:是一个数组,包含了文档中所有锚标记(包含 name 属 性的<a>标记), 按照在文档中的次序, 从 0 开始给每个锚标记定义了一个下标。
- Frame对象:是window对象。用最容易的话说,每个HTML文件占用一个window对象,包括定义框架的网页。
- Location对象:地址对象。它描述的是某一个窗口对象所打开的地址。window.location=”链接地址"。
- history对象:历史对象包含了用户已浏览的URL的信息,是指历史对象指浏览器的历史记录。有back()后退,和浏览器上的后退键一样。forward()前进,和浏览器上的前进键一样
- screen对象:显示屏的一些信息,一般不使用。
- Document对象:文档对象是JavaScript中window的frames对象的一个属性,是显示于窗口或框架内的一个文档。描述当前窗口或指定窗口对象的文档。它包含了文档从<head>到<body/>的内容。
Dom对象的特点:
- Dom可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,也就是表示和处理一个HTML或xml文档的常用方法。
- Dom可用于任何编程语言。
- Dom技术使得用户页面可以动态的变化,如可以动态的显示和隐藏一个元素,改变它们的属性,增加一个元素等。Dom技术使得页面的交互性大大增强。
- Dom实际上是以面向对象方式描述文档模型。可以把Dom认为是页面上数据和结构的一个树形表现,不过页面当然不能以树形的形式显示出来。
- Dom可被JavaScript用来读取,改变HTML,Xml,XHTML文档。
- Dom被分为不同的部分(核心,XML,HTML)和级别(Dom level1/2/3)。
Dom对象规范级别:
- Dom Level1:
- Dom Level1是W3C于1998年10月提出的第一个正式的W3C DOM规范。它有Dom Core和Dom HTML两个模块构成。前者提供了基于XML的文档的结构图,以便访问和操作文档的任意部分。后者添加了一个HTML专用的对象和方法,从而扩展了Dom Core。
- Dom Level1的主要目标是合理规划文档的结构。它的最大缺陷就是忽略了事件模型,其中包含NN2和IE3的最简单的事件模型。
- Dom Level2:
- Dom Level2基于1扩展,这当然就扩展了事件模型。添加了鼠标和用户界面事件,范围,遍历(重复执行DOM文档的方法),XML命名空间,文本范围,检查文档层次的方法等新概念。并通过对象接口添加了对CSS得支持。同时引入了几个新模块,用于处理新的接口类型,例如:
- Dom视图:描述和跟踪文档的各种视图(即CSS样化之前和样化之后的文档)的接口
- Dom事件:描述事件的接口。
- Dom样式表:描述处理基于CSS样式的接口。
- Dom遍历和范围:描述遍历和操作文档树的接口。
- Dom Level2基于1扩展,这当然就扩展了事件模型。添加了鼠标和用户界面事件,范围,遍历(重复执行DOM文档的方法),XML命名空间,文本范围,检查文档层次的方法等新概念。并通过对象接口添加了对CSS得支持。同时引入了几个新模块,用于处理新的接口类型,例如:
- Dom Level3:
- Dom Level3引入了以统一的方式载入和保存文档的方法(包含在新模块Dom Load and Save中)以及验证文档(Dom validation)的方法,从而扩展了W3C Dom规范。
- 在Dom Level3中,Dom Core被扩展为支持所有的XML1.0特性,包括Xml infoset,XPath和Xml Base。从而改善Dom对Xml的支持。
- 其实还有Dom Level0,但这不是W3C的标准。而仅仅是对在Natspace Navigator3.0和IE3.0中等价功能性的一种定义。Dom Level0其实就是定义了一个Document对象的属性和方法。
总结Dom的组成部分:
- 核心Dom:指定属性类型,将带有标记的文档看成树状结构并据此对文档进行操作。
- HTML Dom:提供用于操作HTML文档以及类似于JavaScript对象模型语法的功能部件,在核心Dom的基础上对所有HTML元素进行操作。
- Xml Dom:使用Dom来解析Xml文档。
- Dom CSS:提供脚本编程实现CSS的接口。