0%

DomScriptingCh1

JavaScript简史

js的起源

js是Netscape和Sun合作开发的,在他之前,浏览器只不过是能浏览超文本文档的简单工具。
微软作为浏览器领域的后来者,先后发布了VBscript和js的另一个版本JScript,为了应对竞争,Ns和sun与ECMA联合对js进行了标准化,即成为ECMAScript。
ECMAScript或者叫js,早期版本即给出了level0的DOM。

DOM -是什么

DOM 文件对象模型(Document Object Model) 是W3C组织推荐的处理可扩展置标语言的标准编程接口。是一种与平台和语言无关的API。
W3C的DOM标准分为三个部分:

  • 核心DOM,对任何任何结构化文档的标准模型。
  • XML DOM, 对XML的标准模型
  • HTML DOM 对HTML的标准模型

其中XML DOM,定义了XML文档元素的对象和属性,以及访问的方法。
HTML DOM给出了:

  • HTML的标准对象模型
  • HTML的标准编程接口
  • W3C标准
    即对HTML增删改查的标准

    DOM树

DOM将整个文档作为一个树形结构,每个节点是HTML中的标签或者标签内文本项目。
DOM树结构精确描述整个HTML文档中标签间的相互关联性。
将HTML或者XML变为DOM树的过程就为解析(parse)。对HTML文档的操作可以通过对DOM树的操作完成.DOM模型定义了结点对象的行为,可以利用对象的方法和属性,对DOM树进行增删改查。

DOM树中的结点有层次关系,即parent,child,sibling。其中同级子节点称为同胞。

  • 同胞有相同的父节点
  • 一个节点有任意多个子

1
2
3
4
5
6
7
8
9
<html>
<head>
<title>what is dom</title>
</head>
<body>
<h1>ch1</h1>
<p>hello</p>
</body>
</html>

其中即为root,head和body是子节点,二者为同胞。且head为html的第一个子节点,body是最后一个子节点。

浏览器战争

Netscape和MS在推出第四代浏览器产品中使用了不同的DOM,Netscape使用了专有元素layer,一个layer有唯一ID,可以这样引用:

1
document.layers['myelement']

而MS的DOM则是:

document.all['myelement'];

此类区别数不胜数。
为此W3C提出了DOM标准,两个公司都做出了让步,但是最终MS却靠着windows预装ie打败了Ns。