XPDOM (Cross-Platform DOM) |
XPDOM (Cross-Platform DOM) is a W3C-DOM Level 2 compatibility layer to programming Dynamic HTML in standard DOM and exactly same way in most important browsers with Dynamic HTML capabilities: MSIE 4.x, 5.x and the new Mozilla 1.x/Netscape 6,7 (Netscape Navigator 4.x was supported in early releases). It is updated to the latest functional implemented W3C-DOM Level 2 in Mozilla/Netscape as the reference implementation.
Defines a API very similar to Java W3C-DOM-2 specification but with ECMAScript.
The JavaScript code is written once following W3C-DOM Level 2 standard independently of the browser is executing, and without code sniffing to detect the browser because XPDOM API does it.
The objective is to leverage, unify and standardize the Web client programming world promoting use of the W3C-DOM-2 standard now but with current browsers.
I think that Web technologies are evolving to restore the lost client protagonism in web applications, with more powerful developer tools oriented to behaviour and content management not only to display. DOM is a key standard (SVG and XSLT too), but old browser propietary technologies avoid leverage and standardize Web programming. This project tries to bridge the gap today with old and propietary technologies
The library is probably unique in the world because many other libraries define their propietary layer API on top of the propietary DOM of the browser.
It is prepared to the future: when browsers support the W3C-DOM-2 natively (as Netscape 6+/Mozilla 1.x today), the library can be removed and code using it might be ported very easily to use the native support directly.
This project is the result of many months of research and development with the best JavaScript techniques in an fully object oriented fashion and focusing in quality and good design.
It is not complete and never will be, because is theoretically impossible simulate the W3C-DOM standard with old browsers like MSIE 5.x, but it can be near.
However the project is in a production ready state. There are several widgets developed over the library to show how programming DHTML effects with W3C-DOM.
The examples show the most useful functions of W3C-DOM-2 API, showing how to manipulate normal layout positioned elements, absolute positioned layers, window viewport and mouse events.