I am going to admit a selfish motive for writing this book and, more recently, updating it to the second edition: I needed the finished product for my own consulting and development work. After struggling in the early Version 4 browser days with tangled online references and monstrous printed versions of Netscape, Microsoft, and World Wide Web Consortium (W3C) documentation for Dynamic HTML (DHTML) features, I had had enough. My human brain could no longer store the parallels and discrepancies of the hundreds of terms for HTML attributes, style sheets, and scriptable object models. And no browser maker was about to tell me how compatible a particular feature might be in another browser. It was clearly time to roll my own reference.
At first, I thought the project would be a relatively straightforward blending of content from available sources, with a pinch of my development experience thrown in for flavoring. But the more I examined the existing documents, the worse the situation became. Developer documentation from the browser makers, and even the W3C, contained inconsistencies and incomplete (if at times erroneous) information. From the very beginning, it was clear that I could not trust everything I read, but instead had to try as much as I could on as many browsers and browser versions as I could. Multiply all that code testing by the hundreds of HTML attributes, CSS attributes, object properties, object methods, and event handlers for the first edition . . . before I knew it, many extra months of day-and-night coding and writing were history.
Creating the second edition was no less harrowing. The W3C DOM had come on the scene, bringing entirely new concepts about object models. Reconciling the ideals of the W3C specifications against the development work on the Mozilla browser meant many hours combing through the browser's source code and bug reports for clues about what was broken, about-to-be-fixed, or put on hold for the future. Combining those developments with an ever-growing vocabulary in the proprietary Internet Explorer world, the amount of information had grown to unimaginable proportions: more than 15,000 unique instances of properties, methods, and event handlers supported by numerous document objects.
That's all the more reason that I'm thrilled to produce this second edition, so that I have a DHTML reference that is always within arm's reach at my workstation. I even have the duct tape ready for the day when the cover surrenders to too many twists and turns.
I would be the last person on the planet to promise that this book is perfect in every way. While the predictability and reliability of DHTML scripting has increased significantly since the days of the first edition, I still find many discrepancies between vendor or standards documentation and observable reality in mainstream browsers. In such cases, I document the reality. In doing so, I recall my high school physics teacher who would shout to the class, "Seeing is believing!" and then promptly demonstrate an optical illusion. I hope that my long experience in this field has helped me see through the illusions, so that I may relate the true reality.