| |
| |
Acknowledgments | |
| |
| |
Introduction | |
| |
| |
| |
Overview of the W3C Document Object Model | |
| |
| |
| |
Introduction to the DOM | |
| |
| |
What Is the Document Object Model? | |
| |
| |
The DOM Philosophy | |
| |
| |
Yet Another Standard? | |
| |
| |
Design Philosophy | |
| |
| |
Object-Oriented vs. Flat Views of the DOM Interfaces | |
| |
| |
History of the DOM | |
| |
| |
The DOM on the Client | |
| |
| |
The DOM on the Server | |
| |
| |
Levels of the DOM | |
| |
| |
Level 1 | |
| |
| |
Level 2 | |
| |
| |
Level 3 | |
| |
| |
Conventions Used in the DOM Specification | |
| |
| |
What the DOM Isn't | |
| |
| |
Conclusion | |
| |
| |
| |
How the DOM Represents Structured Documents | |
| |
| |
Basic DOM Data Types | |
| |
| |
The DOMString Type | |
| |
| |
The DOMTimeStamp Type | |
| |
| |
Handling Errors: The DOMException Interface | |
| |
| |
The Document Tree Structure | |
| |
| |
DOM Node Types | |
| |
| |
The Fundamental Core DOM Interfaces | |
| |
| |
DOMException Codes | |
| |
| |
The DOM Node Interface | |
| |
| |
Node Helper Interfaces: NodeList and NamedNodeMap | |
| |
| |
The DOMImplementation Interface | |
| |
| |
The Document Interface | |
| |
| |
The DocumentFragment Interface | |
| |
| |
The Element Interface | |
| |
| |
The Attr Interface | |
| |
| |
The CharacterData Interface | |
| |
| |
The Comment Interface | |
| |
| |
The Text Interface | |
| |
| |
The Extended Core Interfaces | |
| |
| |
CDATASection Interface | |
| |
| |
DocumentType Interface | |
| |
| |
Notation Interface | |
| |
| |
Entity Interface | |
| |
| |
EntityReference Interface | |
| |
| |
ProcessingInstruction Interface | |
| |
| |
Conclusion | |
| |
| |
| |
Navigating and Manipulating Structured Documents | |
| |
| |
Working with Nodes | |
| |
| |
A Word About Namespaces | |
| |
| |
Obtaining Object References to Nodes | |
| |
| |
Inspecting Nodes | |
| |
| |
Manipulating Nodes | |
| |
| |
Creating New Nodes | |
| |
| |
Importing Nodes from Other Documents | |
| |
| |
Traversing Documents | |
| |
| |
Using the Node Interface Properties | |
| |
| |
Using the DOM Level 2 Traversal Module | |
| |
| |
Conclusion | |
| |
| |
| |
Real-World DOM | |
| |
| |
| |
Algorithms | |
| |
| |
DOM Algorithms | |
| |
| |
Basic Node Traversal Algorithms | |
| |
| |
Position-Based Algorithms | |
| |
| |
Determining Whether a Node Has an Ancestor of a Given Type | |
| |
| |
Determining Whether a Node Has a Sibling of a Given Type | |
| |
| |
Content-Based Algorithms | |
| |
| |
Determining Whether a Node Contains Another Node | |
| |
| |
Better Versions of Node Interfaces: Retrieving Relative Nodes by Type | |
| |
| |
Finding a Node by Attribute Value | |
| |
| |
Conclusion | |
| |
| |
| |
Browsers | |
| |
| |
DOM Support in the Major Browsers | |
| |
| |
Microsoft Internet Explorer 6 | |
| |
| |
Netscape Navigator 6.x | |
| |
| |
Opera 6 | |
| |
| |
Using the DOM in a Browser Environment | |
| |
| |
Obtaining a Reference to the Document | |
| |
| |
Examining the Structure and Content of a Page | |
| |
| |
Creating and Modifying Page Elements | |
| |
| |
Handling Events with the DOM Level 2 Events Interface | |
| |
| |
Internet Explorer--Specific Methods and Properties | |
| |
| |
Internet Explorer--Specific Properties | |
| |
| |
Internet Explorer--Specific Methods | |
| |
| |
Browser Quirks | |
| |
| |
Internet Explorer | |
| |
| |
Netscape Navigator | |
| |
| |
Conclusion | |
| |
| |
| |
Applications | |
| |
| |
DOM Implementations Aren't Just for Browsers | |
| |
| |
Standalone vs. Embedded DOM Implementations | |
| |
| |
The Apache Xerces Parser | |
| |
| |
Where to Get Xerces | |
| |
| |
Installing Xerces | |
| |
| |
Getting to Know the API | |
| |
| |
Using Xerces | |
| |
| |
Where to Get More Information About Xerces | |
| |
| |
The Microsoft MSXML Parser | |
| |
| |
Where to Get MSXML4 | |
| |
| |
Installing MSXML4 | |
| |
| |
Getting to Know the API | |
| |
| |
Using MSXML4 | |
| |
| |
Where to Get More Information About MSXML | |
| |
| |
Macromedia Dreamweaver | |
| |
| |
Where to Get Dreamweaver | |
| |
| |
The DOM in Dreamweaver | |
| |
| |
Getting to Know the API | |
| |
| |
Using the Dreamweaver DOM | |
| |
| |
Where to Get More Information About the Dreamweaver DOM | |
| |
| |
Conclusion | |
| |
| |
| |
Debugging DOM Applications | |
| |
| |
Importance of Good Debugging Skills | |
| |
| |
Be Assertive: Use ASSERT() | |
| |
| |
Defining ASSERT() | |
| |
| |
Using ASSERT() Effectively | |
| |
| |
Getting Fancy with ASSERT() | |
| |
| |
Tracing Your Steps with TraceConsole | |
| |
| |
Using the TraceConsole | |
| |
| |
The TraceConsole Functions | |
| |
| |
The DOMDumper | |
| |
| |
DOMDumper Output | |
| |
| |
DOMDumper Code | |
| |
| |
Using the DOMDumper | |
| |
| |
Conclusion | |
| |
| |
| |
Practical Uses of the DOM | |
| |
| |
| |
Providing Automatic Document Navigation | |
| |
| |
Using the DOM to Provide Better Document Navigation | |
| |
| |
Example: On-the-Fly Bookmarks | |
| |
| |
Setting Up | |
| |
| |
Creating the User Interface Elements | |
| |
| |
Building the Bookmark List | |
| |
| |
Inserting the Bookmark List into the Document | |
| |
| |
Responding to the User's Bookmark Selection | |
| |
| |
Example: Automatic Table of Contents | |
| |
| |
Setting Up | |
| |
| |
Scanning the Document's Nodes | |
| |
| |
Building a TOC Destination | |
| |
| |
Adding the TOC Entry | |
| |
| |
Example: Document Placeholders | |
| |
| |
Setting Up | |
| |
| |
Handling Click Events | |
| |
| |
Finding a Containing Paragraph Node | |
| |
| |
Conclusion | |
| |
| |
| |
Dynamic User Interfaces | |
| |
| |
Building Dynamic User Interfaces with the DOM | |
| |
| |
Creating a Color Picker | |
| |
| |
In-Place List Editing | |
| |
| |
DOM-Based Pop-up Menus | |
| |
| |
Conclusion | |
| |
| |
| |
Client Processing of Data-Driven Documents | |
| |
| |
Processing Data-Driven Documents on the Client | |
| |
| |
Client-Side Sorting | |
| |
| |
Sorting a List | |
| |
| |
Sorting a Table | |
| |
| |
Post-Processing Server-Generated Documents | |
| |
| |
Working with Embedded XML Data in Web Pages | |
| |
| |
Data Islands in Internet Explorer | |
| |
| |
Data Islands in Netscape Navigator | |
| |
| |
Example: Joe's Cafe Menu Application | |
| |
| |
The Menu Page | |
| |
| |
The Menu XML Code | |
| |
| |
Generating the Menu HTML | |
| |
| |
Handling User Interaction | |
| |
| |
Conclusion | |
| |
| |
| |
Future Directions for the DOM | |
| |
| |
Where Is the DOM Headed? | |
| |
| |
Proposed Changes in DOM Level 3 | |
| |
| |
General Changes | |
| |
| |
Abstract Schema Support | |
| |
| |
Error Handling | |
| |
| |
Loading and Saving DOM Documents | |
| |
| |
Attaching Application-Specific Data to Nodes | |
| |
| |
Determining Relative Document Positions of Nodes | |
| |
| |
XPath Support | |
| |
| |
Other Potential Future DOM Enhancements | |
| |
| |
XSLT Support in the DOM | |
| |
| |
Transaction-Oriented Processing | |
| |
| |
Conclusion | |
| |
| |
| |
DOM Core Level 1 API Reference | |
| |
| |
DOM Interface Inheritance Tree | |
| |
| |
Interface Attr | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface CDATA | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface CharacterData | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface Comment | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface Document | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface DocumentFragment | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface DocumentType | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface DOMImplementation | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface DOMException | |
| |
| |
Constants | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface Element | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface Entity | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface EntityReference | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface NamedNodeMap | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface Node | |
| |
| |
Constants | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface NodeList | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface Natation | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface ProcessingInstruction | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Interface Text | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Index | |