The Web Professional's Handbook: Document Object Models -WebReference.com-
The Web Professional's Handbook: Document Object Models
To understand why the DOMs are as they are and why there are four, it's best to start with a bit of browser history.
The Level 0 DOM
Competitors arrived. Microsoft, especially, was eager to promote its own IE as a viable alternative to Netscape. They were careful to copy the Level 0 DOM, and to make sure IE reacted to scripts in the same way as Netscape did. Unfortunately, IE 3 couldn't access images where Netscape 3 could, creating the first of the cross-browser compatibility problems.
The Intermediate DOMs
Netscape assumed that, as before, other browsers would follow its lead. However, since Microsoft challenged Netscape's dominance on the browser market, it chose to develop its own DOM and to ignore that which the Netscape programmers were creating. This resulted in the two browsers each supporting its own DOM, these DOMs being completely incompatible. Thus came the era of the Browser Wars. While Netscape and Microsoft fought for dominance of the browser market, web developers were forced to write complicated cross-browser scripts and to work around the sometimes considerable differences between the two browsers.
In hindsight, the Microsoft DOM was seen as better, and is far closer to the eventual W3C DOM standards, than Netscape's. For this reason and others, IE continued to make inroads into the Netscape market share.
The Netscape model (document.layers) is only supported by Netscape 4. When the new Mozilla code engine that drives Netscape 6 and higher was created, it was decided to completely remove the old layer-based DOM.
The Microsoft model (document.all) is supported by IE 4 and higher, Opera 6 and higher, and some minor browsers like iCab and Omniweb.
Created: February 18, 2003
Revised: February 18, 2003