home
|
O'Reilly's CD bookshelfs
|
FreeBSD
|
Linux
|
Cisco
|
Cisco Exam
•
Table of Contents
•
Index
•
Reviews
•
Examples
•
Reader Reviews
•
Errata
JavaScript & DHTML Cookbook
By
Danny Goodman
Publisher
: O'Reilly
Pub Date
: April 2003
ISBN
: 0-596-00467-2
Pages
: 540
Copyright
Preface
About You
About the Recipes
What's in This Book
Browser Platforms
Conventions Used in This Book
Request for Comments
Acknowledgments
Chapter 1. Strings
Section 1.0. Introduction
Section 1.1. Concatenating (Joining) Strings
Section 1.2. Accessing Substrings
Section 1.3. Changing String Case
Section 1.4. Testing Equality of Two Strings
Section 1.5. Testing String Containment Without Regular Expressions
Section 1.6. Testing String Containment with Regular Expressions
Section 1.7. Searching and Replacing Substrings
Section 1.8. Using Special and Escaped Characters
Section 1.9. Reading and Writing Strings for Cookies
Section 1.10. Converting Between Unicode Values and String Characters
Section 1.11. Encoding and Decoding URL Strings
Section 1.12. Encoding and Decoding Base64 Strings
Chapter 2. Numbers and Dates
Section 2.0. Introduction
Section 2.1. Converting Between Numbers and Strings
Section 2.2. Testing a Number's Validity
Section 2.3. Testing Numeric Equality
Section 2.4. Rounding Floating-Point Numbers
Section 2.5. Formatting Numbers for Text Display
Section 2.6. Converting Between Decimal and Hexadecimal Numbers
Section 2.7. Generating Pseudorandom Numbers
Section 2.8. Calculating Trigonometric Functions
Section 2.9. Creating a Date Object
Section 2.10. Calculating a Previous or Future Date
Section 2.11. Calculating the Number of Days Between Two Dates
Section 2.12. Validating a Date
Chapter 3. Arrays and Objects
Section 3.0. Introduction
Section 3.1. Creating a Simple Array
Section 3.2. Creating a Multidimensional Array
Section 3.3. Converting Between Arrays and Strings
Section 3.4. Doing Something with the Items in an Array
Section 3.5. Sorting a Simple Array
Section 3.6. Combining Arrays
Section 3.7. Dividing Arrays
Section 3.8. Creating a Custom Object
Section 3.9. Simulating a Hash Table for Fast Array Lookup
Section 3.10. Doing Something with a Property of an Object
Section 3.11. Sorting an Array of Objects
Section 3.12. Customizing an Object's Prototype
Section 3.13. Converting Arrays and Custom Objects to Strings
Chapter 4. Variables, Functions, and Flow Control
Section 4.0. Introduction
Section 4.1. Creating a JavaScript Variable
Section 4.2. Creating a Named Function
Section 4.3. Nesting Named Functions
Section 4.4. Creating an Anonymous Function
Section 4.5. Delaying a Function Call
Section 4.6. Branching Execution Based on Conditions
Section 4.7. Handling Script Errors Gracefully
Section 4.8. Improving Script Performance
Chapter 5. Browser Feature Detection
Section 5.0. Introduction
Section 5.1. Detecting the Browser Brand
Section 5.2. Detecting an Early Browser Version
Section 5.3. Detecting the Internet Explorer Version
Section 5.4. Detecting the Netscape Navigator Version
Section 5.5. Detecting the Client Operating System
Section 5.6. Detecting Object Support
Section 5.7. Detecting Object Property and Method Support
Section 5.8. Detecting the Browser Written Language
Section 5.9. Detecting Cookie Availability
Section 5.10. Defining Browser- or Feature-Specific Links
Section 5.11. Testing on Multiple Browser Versions
Chapter 6. Managing Browser Windows
Section 6.0. Introduction
Section 6.1. Setting the Main Window's Size
Section 6.2. Positioning the Main Window
Section 6.3. Maximizing the Main Window
Section 6.4. Creating a New Window
Section 6.5. Bringing a Window to the Front
Section 6.6. Communicating with a New Window
Section 6.7. Communicating Back to the Main Window
Section 6.8. Using Internet Explorer Modal/Modeless Windows
Section 6.9. Simulating a Cross-Browser Modal Dialog Window
Section 6.10. Simulating a Window with Layers
Chapter 7. Managing Multiple Frames
Section 7.0. Introduction
Section 7.1. Creating a Blank Frame in a New Frameset
Section 7.2. Changing the Content of One Frame from Another
Section 7.3. Changing the Content of Multiple Frames at Once
Section 7.4. Replacing a Frameset with a Single Page
Section 7.5. Avoiding Being "Framed" by Another Site
Section 7.6. Assuring a Page Loads in its Frameset
Section 7.7. Reading a Frame's Dimensions
Section 7.8. Resizing Frames
Section 7.9. Setting Frameset Specifications Dynamically
Chapter 8. Dynamic Forms
Section 8.0. Introduction
Section 8.1. Auto-Focusing the First Text Field
Section 8.2. Performing Common Text Field Validations
Section 8.3. Preventing Form Submission upon Validation Failure
Section 8.4. Auto-Focusing an Invalid Text Field Entry
Section 8.5. Changing a Form's Action
Section 8.6. Blocking Submissions from the Enter Key
Section 8.7. Advancing Text Field Focus with the Enter Key
Section 8.8. Submitting a Form by an Enter Key Press in Any Text Box
Section 8.9. Disabling Form Controls
Section 8.10. Hiding and Showing Form Controls
Section 8.11. Allowing Only Numbers (or Letters) in a Text Box
Section 8.12. Auto-Tabbing for Fixed-Length Text Boxes
Section 8.13. Changing select Element Content
Section 8.14. Copying Form Data Between Pages
Chapter 9. Managing Events
Section 9.0. Introduction
Section 9.1. Equalizing the IE and W3C Event Models
Section 9.2. Initiating a Process After the Page Loads
Section 9.3. Determining the Coordinates of a Click Event
Section 9.4. Preventing an Event from Performing Its Default Behavior
Section 9.5. Blocking Double Clicks
Section 9.6. Determining Which Element Received an Event
Section 9.7. Determining Which Mouse Button Was Pressed
Section 9.8. Reading Which Character Key Was Typed
Section 9.9. Reading Which Noncharacter Key Was Pressed
Section 9.10. Determining Which Modifier Keys Were Pressed During an Event
Section 9.11. Determining the Element the Cursor Rolled From/To
Section 9.12. Synchronizing Sounds to Events
Chapter 10. Page Navigation Techniques
Section 10.0. Introduction
Section 10.1. Loading a New Page or Anchor
Section 10.2. Keeping a Page Out of the Browser History
Section 10.3. Using a select Element for Navigation
Section 10.4. Passing Data Between Pages Via Cookies
Section 10.5. Passing Data Between Pages Via Frames
Section 10.6. Passing Data Between Pages Via URLs
Section 10.7. Creating a Contextual (Right-Click) Menu
Section 10.8. Creating Drop-Down Navigation Menus
Section 10.9. Providing Navigation Trail Menus
Section 10.10. Creating Expandable Menus
Section 10.11. Creating Collapsible XML Menus
Chapter 11. Managing Style Sheets
Section 11.0. Introduction
Section 11.1. Assigning Style Sheet Rules to an Element Globally
Section 11.2. Assigning Style Sheet Rules to a Subgroup of Elements
Section 11.3. Assigning Style Sheet Rules to an Individual Element
Section 11.4. Importing External Style Sheets
Section 11.5. Importing Browser- or Operating System-Specific Style Sheets
Section 11.6. Changing Imported Style Sheets After Loading
Section 11.7. Enabling/Disabling Style Sheets
Section 11.8. Toggling Between Style Sheets for an Element
Section 11.9. Overriding a Style Sheet Rule
Section 11.10. Turning Arbitrary Content into a Styled Element
Section 11.11. Creating Center-Aligned Body Elements
Section 11.12. Reading Effective Style Sheet Property Values
Section 11.13. Forcing Version 6 Browsers into Standards-Compatibility Mode
Chapter 12. Visual Effects for Stationary Content
Section 12.0. Introduction
Section 12.1. Precaching Images
Section 12.2. Swapping Images (Rollovers)
Section 12.3. Changing Text Style Properties
Section 12.4. Offering Body Text Size Choices to Users
Section 12.5. Creating Custom Link Styles
Section 12.6. Changing Page Background Colors and Images
Section 12.7. Hiding and Showing Elements
Section 12.8. Adjusting Element Transparency
Section 12.9. Creating Transition Visual Effects
Chapter 13. Positioning HTML Elements
Section 13.0. Introduction
Section 13.1. Making an Element Positionable in the Document Space
Section 13.2. Connecting a Positioned Element to a Body Element
Section 13.3. Controlling Positioning Via a DHTML JavaScript Library
Section 13.4. Deciding Between div and span Containers
Section 13.5. Adjusting Positioned Element Stacking Order (z-order)
Section 13.6. Centering an Element on Top of Another Element
Section 13.7. Centering an Element in a Window or Frame
Section 13.8. Determining the Location of a Nonpositioned Element
Section 13.9. Animating Straight-Line Element Paths
Section 13.10. Animating Circular Element Paths
Section 13.11. Creating a Draggable Element
Section 13.12. Scrolling div Content
Section 13.13. Creating a Custom Scrollbar
Chapter 14. Creating Dynamic Content
Section 14.0. Introduction
Section 14.1. Writing Dynamic Content During Page Loading
Section 14.2. Creating New Page Content Dynamically
Section 14.3. Including External HTML Content
Section 14.4. Embedding XML Data
Section 14.5. Embedding Data as JavaScript Objects
Section 14.6. Transforming XML Data into HTML Tables
Section 14.7. Transforming JavaScript Objects into HTML Tables
Section 14.8. Converting an XML Node Tree to JavaScript Objects
Section 14.9. Creating a New Element
Section 14.10. Creating Text Content for a New Element
Section 14.11. Creating Mixed Element and Text Nodes
Section 14.12. Inserting and Populating an iframe Element
Section 14.13. Getting a Reference to an HTML Element Object
Section 14.14. Replacing Portions of Body Content
Section 14.15. Removing Body Content
Section 14.16. Sorting Dynamic Tables
Section 14.17. Walking the Document Node Tree
Section 14.18. Capturing Document Content
Chapter 15. Dynamic Content Applications
Section 15.0. Introduction
Section 15.1. Displaying a Random Aphorism
Section 15.2. Converting a User Selection into an Arbitrary Element
Section 15.3. Automating the Search-and-Replace of Body Content
Section 15.4. Creating a Slide Show
Section 15.5. Auto-Scrolling the Page
Section 15.6. Greeting Users with Their Time of Day
Section 15.7. Displaying the Number of Days Before Christmas
Section 15.8. Displaying a Countdown Timer
Section 15.9. Creating a Calendar Date Picker
Section 15.10. Displaying an Animated Progress Bar
Appendix A. Keyboard Event Character Values
Appendix B. Keyboard Key Code Values
Appendix C. ECMAScript Reserved Keywords
Colophon
Index