1.2 浏览器之争
Netscape Navigator 4(NN 4)浏览器发布于1997年6月,IE 4浏览器发布于同年的10月。这两种浏览器都对它们的早期版本进行了许多改进,使用得到极大扩展的DOM,可以通过JavaScript完成的功能大大增加,而网页设计人员也开始熟悉一个新的名词:DHTML。
1.2.1 DHTML
DHTML是“dynamic HTML”(动态HTML)的简称。严格地说,DHTML并不是一项单一的新技术,而是HTML、CSS和JavaScript这三种技术相结合的产物。DHTML背后的含义是:
●利用HTML把网页标记为各种元素;
●利用CSS设计各有关元素的排版样式并确定它们在窗口中的显示位置;
●利用JavaScript实时地操控和改变各有关样式。
DHTML指的是上述三项技术的相互结合。利用DHTML,复杂的动画效果一下子变得非常容易实现。例如,可以先用HTML标记一个如下所示的页面元素:
![]()
然后,可以用CSS为这个页面元素定义如下所示的位置样式:

接下来,只需利用JavaScript改变myelement元素的left和top样式,就可以让它在页面上随意移动。
不过,这种简单性只停留在理论上——因为NN 4和IE 4浏览器使用的是不同的且不兼容的DOM,所以要想实际获得这种效果还需要程序员做很多工作。换句话说,虽然浏览器制造商的目标是一样的,但他们在解决DOM问题时采用的办法却完全不同。
1.2.2 浏览器之间的冲突
Netscape公司的DOM使用了其专有的元素,这些元素称为层(layer)。这些层都有唯一的ID,JavaScript代码需要像下面这样使用它们:
![]()
而在微软公司的DOM中这个元素必须像下面这样使用:
![]()
这两种DOM在细节方面的差异并不止于这一点。假设你想找出myelement元素的left位置并把它赋值给变量xpos,那么在Netscape Navigator 4浏览器里必须这样做:
![]()
而在IE 4浏览器中,你需要使用如下所示的语句才能完成同样的工作:
![]()
这就导致了一种很可笑的局面:程序员在编写DOM脚本代码时必须知道它们将运行在哪种浏览器环境里。在实际工作中,许多脚本都不得不编写两次,一次为NN 4浏览器,另一次为IE 4浏览器。同时,为了确保能够正确地向不同的浏览器提供与之相应的脚本,程序员还必须编写一些代码去检测在客户端运行的浏览器到底是哪一种。
DHTML打开了一扇通往新世界的大门,但进入这扇大门的人们却发现这条路并不好走。因此,没多久,DHTML就从一个大热门变成了一个人们不愿提起的名词,而对这种技术的评价也很快地变成了“宣传噱头”和“难以实现”。







