Book description
On numerous online forums for JavaScript and DHTML, the majority of questions begin with "How do I...?" This new Cookbook provides the answers. After reading thousands of forum threads over the years, author and scripting pioneer Danny Goodman has compiled a list of problems that frequently vex scripters of various experience levels. He has now applied state-of-the-art ECMA and W3C DOM standards and used best practices to create this extensive collection of practical recipes that can bring your web pages to life.The JavaScript & DHTML Cookbook is all about adding value to the content of a web page. The book focuses on practical and sensible applications of scripting, rather than flying images and gratuitous color changes. For every problem Goodman addresses, there's a solution or "recipe"--a focused piece of code that web developers can insert directly into their applications. Yet, rather than just cut-and-paste code, you also get explanations of how and why the code works, so you can learn to adapt the problem-solving techniques to your designs.The recipes range from simple tasks, such as manipulating strings and validating dates in JavaScript, to entire libraries that demonstrate complex tasks, such as cross-browser positioning of HTML elements and sorting tables. This book contains over 150 recipes on the following topics:
- Working with interactive forms and style sheets
- Presenting user-friendly page navigation
- Creating dynamic content
- Producing visual effects for stationary content
- Positioning HTML elements
- Managing browser windows and multiple frames
Publisher resources
Table of contents
- A Note Regarding Supplemental Files
- Preface
-
1. Strings
- 1.0. Introduction
- 1.1. Concatenating (Joining) Strings
- 1.2. Accessing Substrings
- 1.3. Changing String Case
- 1.4. Testing Equality of Two Strings
- 1.5. Testing String Containment Without Regular Expressions
- 1.6. Testing String Containment with Regular Expressions
- 1.7. Searching and Replacing Substrings
- 1.8. Using Special and Escaped Characters
- 1.9. Reading and Writing Strings for Cookies
- 1.10. Converting Between Unicode Values and String Characters
- 1.11. Encoding and Decoding URL Strings
- 1.12. Encoding and Decoding Base64 Strings
-
2. Numbers and Dates
- 2.0. Introduction
- 2.1. Converting Between Numbers and Strings
- 2.2. Testing a Number’s Validity
- 2.3. Testing Numeric Equality
- 2.4. Rounding Floating-Point Numbers
- 2.5. Formatting Numbers for Text Display
- 2.6. Converting Between Decimal and Hexadecimal Numbers
- 2.7. Generating Pseudorandom Numbers
- 2.8. Calculating Trigonometric Functions
- 2.9. Creating a Date Object
- 2.10. Calculating a Previous or Future Date
- 2.11. Calculating the Number of Days Between Two Dates
- 2.12. Validating a Date
-
3. Arrays and Objects
- 3.0. Introduction
- 3.1. Creating a Simple Array
- 3.2. Creating a Multidimensional Array
- 3.3. Converting Between Arrays and Strings
- 3.4. Doing Something with the Items in an Array
- 3.5. Sorting a Simple Array
- 3.6. Combining Arrays
- 3.7. Dividing Arrays
- 3.8. Creating a Custom Object
- 3.9. Simulating a Hash Table for Fast Array Lookup
- 3.10. Doing Something with a Property of an Object
- 3.11. Sorting an Array of Objects
- 3.12. Customizing an Object’s Prototype
- 3.13. Converting Arrays and Custom Objects to Strings
- 4. Variables, Functions, and Flow Control
-
5. Browser Feature Detection
- 5.0. Introduction
- 5.1. Detecting the Browser Brand
- 5.2. Detecting an Early Browser Version
- 5.3. Detecting the Internet Explorer Version
- 5.4. Detecting the Netscape Navigator Version
- 5.5. Detecting the Client Operating System
- 5.6. Detecting Object Support
- 5.7. Detecting Object Property and Method Support
- 5.8. Detecting the Browser Written Language
- 5.9. Detecting Cookie Availability
- 5.10. Defining Browser- or Feature-Specific Links
- 5.11. Testing on Multiple Browser Versions
-
6. Managing Browser Windows
- 6.0. Introduction
- 6.1. Setting the Main Window’s Size
- 6.2. Positioning the Main Window
- 6.3. Maximizing the Main Window
- 6.4. Creating a New Window
- 6.5. Bringing a Window to the Front
- 6.6. Communicating with a New Window
- 6.7. Communicating Back to the Main Window
- 6.8. Using Internet Explorer Modal/Modeless Windows
- 6.9. Simulating a Cross-Browser Modal Dialog Window
- 6.10. Simulating a Window with Layers
-
7. Managing Multiple Frames
- 7.0. Introduction
- 7.1. Creating a Blank Frame in a New Frameset
- 7.2. Changing the Content of One Frame from Another
- 7.3. Changing the Content of Multiple Frames at Once
- 7.4. Replacing a Frameset with a Single Page
- 7.5. Avoiding Being “Framed” by Another Site
- 7.6. Assuring a Page Loads in its Frameset
- 7.7. Reading a Frame’s Dimensions
- 7.8. Resizing Frames
- 7.9. Setting Frameset Specifications Dynamically
-
8. Dynamic Forms
- 8.0. Introduction
- 8.1. Auto-Focusing the First Text Field
- 8.2. Performing Common Text Field Validations
- 8.3. Preventing Form Submission upon Validation Failure
- 8.4. Auto-Focusing an Invalid Text Field Entry
- 8.5. Changing a Form’s Action
- 8.6. Blocking Submissions from the Enter Key
- 8.7. Advancing Text Field Focus with the Enter Key
- 8.8. Submitting a Form by an Enter Key Press in Any Text Box
- 8.9. Disabling Form Controls
- 8.10. Hiding and Showing Form Controls
- 8.11. Allowing Only Numbers (or Letters) in a Text Box
- 8.12. Auto-Tabbing for Fixed-Length Text Boxes
- 8.13. Changing select Element Content
- 8.14. Copying Form Data Between Pages
-
9. Managing Events
- 9.0. Introduction
- 9.1. Equalizing the IE and W3C Event Models
- 9.2. Initiating a Process After the Page Loads
- 9.3. Determining the Coordinates of a Click Event
- 9.4. Preventing an Event from Performing Its Default Behavior
- 9.5. Blocking Double Clicks
- 9.6. Determining Which Element Received an Event
- 9.7. Determining Which Mouse Button Was Pressed
- 9.8. Reading Which Character Key Was Typed
- 9.9. Reading Which Noncharacter Key Was Pressed
- 9.10. Determining Which Modifier Keys Were Pressed During an Event
- 9.11. Determining the Element the Cursor Rolled From/To
- 9.12. Synchronizing Sounds to Events
-
10. Page Navigation Techniques
- 10.0. Introduction
- 10.1. Loading a New Page or Anchor
- 10.2. Keeping a Page Out of the Browser History
- 10.3. Using a select Element for Navigation
- 10.4. Passing Data Between Pages Via Cookies
- 10.5. Passing Data Between Pages Via Frames
- 10.6. Passing Data Between Pages Via URLs
- 10.7. Creating a Contextual (Right-Click) Menu
- 10.8. Creating Drop-Down Navigation Menus
- 10.9. Providing Navigation Trail Menus
- 10.10. Creating Expandable Menus
- 10.11. Creating Collapsible XML Menus
-
11. Managing Style Sheets
- 11.0. Introduction
- 11.1. Assigning Style Sheet Rules to an Element Globally
- 11.2. Assigning Style Sheet Rules to a Subgroup of Elements
- 11.3. Assigning Style Sheet Rules to an Individual Element
- 11.4. Importing External Style Sheets
- 11.5. Importing Browser- or Operating System-Specific Style Sheets
- 11.6. Changing Imported Style Sheets After Loading
- 11.7. Enabling/Disabling Style Sheets
- 11.8. Toggling Between Style Sheets for an Element
- 11.9. Overriding a Style Sheet Rule
- 11.10. Turning Arbitrary Content into a Styled Element
- 11.11. Creating Center-Aligned Body Elements
- 11.12. Reading Effective Style Sheet Property Values
- 11.13. Forcing Version 6 Browsers into Standards-Compatibility Mode
-
12. Visual Effects for Stationary Content
- 12.0. Introduction
- 12.1. Precaching Images
- 12.2. Swapping Images (Rollovers)
- 12.3. Changing Text Style Properties
- 12.4. Offering Body Text Size Choices to Users
- 12.5. Creating Custom Link Styles
- 12.6. Changing Page Background Colors and Images
- 12.7. Hiding and Showing Elements
- 12.8. Adjusting Element Transparency
- 12.9. Creating Transition Visual Effects
-
13. Positioning HTML Elements
- 13.0. Introduction
- 13.1. Making an Element Positionable in the Document Space
- 13.2. Connecting a Positioned Element to a Body Element
- 13.3. Controlling Positioning Via a DHTML JavaScript Library
- 13.4. Deciding Between div and span Containers
- 13.5. Adjusting Positioned Element Stacking Order (z-order)
- 13.6. Centering an Element on Top of Another Element
- 13.7. Centering an Element in a Window or Frame
- 13.8. Determining the Location of a Nonpositioned Element
- 13.9. Animating Straight-Line Element Paths
- 13.10. Animating Circular Element Paths
- 13.11. Creating a Draggable Element
- 13.12. Scrolling div Content
- 13.13. Creating a Custom Scrollbar
-
14. Creating Dynamic Content
- 14.0. Introduction
- 14.1. Writing Dynamic Content During Page Loading
- 14.2. Creating New Page Content Dynamically
- 14.3. Including External HTML Content
- 14.4. Embedding XML Data
- 14.5. Embedding Data as JavaScript Objects
- 14.6. Transforming XML Data into HTML Tables
- 14.7. Transforming JavaScript Objects into HTML Tables
- 14.8. Converting an XML Node Tree to JavaScript Objects
- 14.9. Creating a New Element
- 14.10. Creating Text Content for a New Element
- 14.11. Creating Mixed Element and Text Nodes
- 14.12. Inserting and Populating an iframe Element
- 14.13. Getting a Reference to an HTML Element Object
- 14.14. Replacing Portions of Body Content
- 14.15. Removing Body Content
- 14.16. Sorting Dynamic Tables
- 14.17. Walking the Document Node Tree
- 14.18. Capturing Document Content
-
15. Dynamic Content Applications
- 15.0. Introduction
- 15.1. Displaying a Random Aphorism
- 15.2. Converting a User Selection into an Arbitrary Element
- 15.3. Automating the Search-and-Replace of Body Content
- 15.4. Creating a Slide Show
- 15.5. Auto-Scrolling the Page
- 15.6. Greeting Users with Their Time of Day
- 15.7. Displaying the Number of Days Before Christmas
- 15.8. Displaying a Countdown Timer
- 15.9. Creating a Calendar Date Picker
- 15.10. Displaying an Animated Progress Bar
- A. Keyboard Event Character Values
- B. Keyboard Key Code Values
- C. ECMAScript Reserved Keywords
- Index
- About the Author
- Colophon
- Copyright
Product information
- Title: JavaScript & DHTML Cookbook
- Author(s):
- Release date: April 2003
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9780596004675
You might also like
book
JavaScript & DHTML Cookbook, 2nd Edition
In today's Web 2.0 world, JavaScript and Dynamic HTML are at the center of the hot …
book
JavaScript Application Cookbook
Visit the catalog page for JavaScript Application CookbookVisit the errata page for JavaScript Application CookbookDownload the …
book
JavaScript Enlightenment
If you’re an advanced beginner or intermediate JavaScript developer, JavaScript Enlightenment will solidify your understanding of …
book
HTML5 Cookbook
With scores of practical recipes you can use in your projects right away, this cookbook helps …