Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
JavaScript Cookbook
SPECIAL OFFER: Upgrade this ebook with O’Reilly
A Note Regarding Supplemental Files
Preface
Audience, Assumptions, and Approach
Target Browsers
Sample Code Conventions
Approach
Organization
Conventions Used in This Book
Using Code Examples
How to Contact Us
Safari® Books Online
Acknowledgments
1. Working with JavaScript Strings
1.0. Introduction
A String Primitive
A String Object
See Also
1.1. Concatenating Two or More Strings
Problem
Solution
Discussion
1.2. Concatenating a String and Another Data Type
Problem
Solution
Discussion
1.3. Conditionally Comparing Strings
Problem
Solution
Discussion
See Also
1.4. Finding a Substring in a String
Problem
Solution
Discussion
See Also
1.5. Extracting a Substring from a String
Problem
Solution
Discussion
See Also
1.6. Checking for an Existing, Nonempty String
Problem
Solution
Discussion
1.7. Breaking a Keyword String into Separate Keywords
Problem
Solution
Discussion
See Also
1.8. Inserting Special Characters
Problem
Solution
Discussion
1.9. Processing Individual Lines of a textarea
Problem
Solution
Discussion
See Also
1.10. Trimming Whitespace from the Ends of a String
Problem
Solution
Discussion
See Also
1.11. Left- or Right-Pad a String
Problem
Solution
Discussion
See Also
2. Using Regular Expressions
2.0. Introduction
A RegExp Literal
RegExp As Object
See Also
2.1. Testing Whether a Substring Exists
Problem
Solution
Discussion
2.2. Testing for Case-Insensitive Substring Matches
Problem
Solution
Discussion
2.3. Validating a Social Security Number
Problem
Solution
Discussion
See Also
2.4. Finding and Highlighting All Instances of a Pattern
Problem
Solution
Discussion
See Also
2.5. Replacing Patterns with New Strings
Problem
Solution
Discussion
See Also
2.6. Swap Words in a String Using Capturing Parentheses
Problem
Solution
Discussion
2.7. Using Regular Expressions to Trim Whitespace
Problem
Solution
Discussion
2.8. Replace HTML Tags with Named Entities
Problem
Solution
Discussion
2.9. Searching for Special Characters
Problem
Solution
Discussion
3. Dates, Time, and Timers
3.0. Introduction
The Date Object
JavaScript Timers
3.1. Printing Out Today’s Date
Problem
Solution
Discussion
3.2. Printing Out the UTC Date and Time
Problem
Solution
Discussion
See Also
3.3. Printing Out an ISO 8601 Formatted Date
Problem
Solution
Discussion
See Also
3.4. Converting an ISO 8601 Formatted Date to a Format Acceptable to the Date Object
Problem
Solution
Discussion
3.5. Creating a Specific Date
Problem
Solution
Discussion
3.6. Scheduling a Future Date
Problem
Solution
Discussion
3.7. Tracking Elapsed Time
Problem
Solution
Discussion
3.8. Creating a Timeout
Problem
Solution
Discussion
See Also
3.9. Creating Recurring Timers
Problem
Solution
Discussion
3.10. Using Function Closures with Timers
Problem
Solution
Discussion
See Also
4. Working with Numbers and Math
4.0. Introduction
The Number Object and Number Literal
The Math Object
4.1. Keeping an Incremental Counter
Problem
Solution
Discussion
See Also
4.2. Converting a Decimal to a Hexadecimal Value
Problem
Solution
Discussion
See Also
4.3. Creating a Random Number Generator
Problem
Solution
Discussion
4.4. Randomly Generating Colors
Problem
Solution
Discussion
See Also
4.5. Converting Strings in a Table to Numbers
Problem
Solution
Discussion
4.6. Summing All Numbers in a Table Column
Problem
Solution
Discussion
See Also
4.7. Converting Between Degrees and Radians
Problem
Solution
Discussion
4.8. Find the Radius and Center of a Circle to Fit Within a Page Element
Problem
Solution
Discussion
See Also
4.9. Calculating the Length of a Circular Arc
Problem
Solution
Discussion
See Also
5. Working with Arrays and Loops
5.0. Introduction
5.1. Looping Through an Array
Problem
Solution
Discussion
5.2. Creating a Multidimensional Array
Problem
Solution
Discussion
5.3. Creating a String from an Array
Problem
Solution
Discussion
5.4. Sorting an Array
Problem
Solution
Discussion
5.5. Store and Access Values in Order
Problem
Solution
Discussion
5.6. Store and Access Values in Reverse Order
Problem
Solution
Discussion
5.7. Create a New Array as a Subset of an Existing Array
Problem
Solution
Discussion
5.8. Searching Through an Array
Problem
Solution
Discussion
See Also
5.9. Flatten a Multidimensional Array
Problem
Solution
Discussion
5.10. Search and Remove or Replace Array Elements
Problem
Solution
Discussion
See Also
5.11. Applying a Function Against Each Array Element
Problem
Solution
Discussion
See Also
5.12. Applying a Function to Every Element in an Array and Returning a New Array
Problem
Solution
Discussion
See Also
5.13. Creating a Filtered Array
Problem
Solution
Discussion
See Also
5.14. Validating Array Contents
Problem
Solution
Discussion
See Also
5.15. Using an Associative Array to Store Form Element Names and Values
Problem
Solution
Discussion
See Also
6. Building Reusability with JavaScript Functions
6.0. Introduction
6.1. Creating a Block of Reusable Code
Problem
Solution
Discussion
6.2. Passing Single Data Values to and from a Function
Problem
Solution
Discussion
See Also
6.3. Passing Complex Data Objects to a Function
Problem
Solution
Discussion
6.4. Creating a Dynamic Runtime Function
Problem
Solution
Discussion
See Also
6.5. Passing a Function As an Argument to Another Function
Problem
Solution
Discussion
See Also
6.6. Implementing a Recursive Algorithm
Problem
Solution
Discussion
See Also
6.7. Create a Function That Remembers Its State
Problem
Solution
Discussion
See Also
6.8. Improving Application Performance with a Generalized Currying Function
Problem
Solution
Discussion
See Also
6.9. Improve Application Performance with Memoization (Caching Calculations)
Problem
Solution
Discussion
See Also
6.10. Using an Anonymous Function to Wrap Global Variables
Problem
Solution
Discussion
See Also
7. Handling Events
7.0. Introduction
Some Common Events
Event History and New Event Handling
New Events, New Uses
See Also
7.1. Detecting When the Page Has Finished Loading
Problem
Solution
Discussion
See Also
7.2. Capturing the Location of a Mouse Click Event Using the Event Object
Problem
Solution
Discussion
See Also
7.3. Creating a Generic, Reusable Event Handler Function
Problem
Solution
Discussion
Creating a universal stop-listening function
7.4. Canceling an Event Based on Changed Circumstance
Problem
Solution
Discussion
7.5. Preventing an Event from Propagating Through a Set of Nested Elements
Problem
Solution
Discussion
7.6. Capturing Keyboard Activity
Problem
Solution
Discussion
See Also
7.7. Using the New HTML5 Drag-and-Drop
Problem
Solution
Discussion
See Also
7.8. Using Safari Orientation Events and Other Mobile Development Environments
Problem
Solution
Discussion
See Also
8. Browser Pieces
8.0. Introduction
8.1. Ask the Web Page Reader to Confirm an Action
Problem
Solution
Discussion
8.2. Creating a New, Stripped-Down Browser Window
Problem
Solution
Discussion
8.3. Finding Out About the Browser Accessing the Page
Problem
Solution
Discussion
See Also
8.4. Warning the Web Page Reader About Leaving a Page
Problem
Solution
Discussion
8.5. Changing Stylesheets Depending on Color Support
Problem
Solution
Discussion
See Also
8.6. Modifying Image Dimensions Depending on Page Size
Problem
Solution
Discussion
See Also
8.7. Creating Breadcrumbs in a CMS Template Page
Problem
Solution
Discussion
8.8. Bookmarking a Dynamic Page
Problem
Solution
Discussion
See Also
8.9. Preserving State for Back Button, Page Refresh
Problem
Solution
Discussion
See Also
9. Form Elements and Validation
9.0. Introduction
9.1. Accessing Form Text Input Values
Problem
Solution
Discussion
See Also
9.2. Dynamically Disabling and Enabling Form Elements
Problem
Solution
Discussion
See Also
9.3. Getting Information from a Form Element Based on an Event
Problem
Solution
Discussion
See Also
9.4. Performing an Action When a Radio Button Is Clicked
Problem
Solution
Discussion
See Also
9.5. Checking for a Valid Phone Number
Problem
Solution
Discussion
See Also
9.6. Canceling a Form Submission
Problem
Solution
Discussion
See Also
9.7. Preventing Duplicate Form Submissions
Problem
Solution
Discussion
9.8. Hiding and Displaying Form Elements
Problem
Solution
Discussion
See Also
9.9. Modifying a Selection List Based on Other Form Decisions
Problem
Solution
Discussion
See Also
10. Debugging and Error Handling
10.0. Introduction
10.1. Gracefully Handling No JavaScript Support
Problem
Solution
Discussion
See Also
10.2. Checking for Errors in Functions
Problem
Solution
Discussion
10.3. Using an Alert for Simple Debugging
Problem
Solution
Discussion
10.4. Catching an Error and Providing Graceful Error Handling
Problem
Solution
Discussion
10.5. Initiating Manageable Errors
Problem
Solution
Discussion
10.6. Using Firebug with Firefox
Problem
Solution
Discussion
See Also
10.7. Setting a Breakpoint and Examining Data with Firebug
Problem
Solution
Discussion
10.8. Firefox and the Console
Problem
Solution
Discussion
See Also
10.9. Using IE’s Built-in Debugger
Problem
Solution
Discussion
See Also
10.10. Setting a Breakpoint with IE Developer Tools
Problem
Solution
Discussion
10.11. Opera’s Dragonfly
Problem
Solution
Discussion
See Also
10.12. Setting a Breakpoint with Dragonfly
Problem
Solution
10.13. Turning on Safari’s Development Tools
Problem
Solution
Discussion
See Also
10.14. Setting a Breakpoint with Safari’s Debugger
Problem
Solution
Discussion
10.15. Debugging in Chrome
Problem
Solution
Discussion
See Also
11. Accessing Page Elements
11.0. Introduction
The DOM Level 0 Document
The Standardized DOMs
See Also
11.1. Access a Given Element and Find Its Parent and Child Elements
Problem
Solution
Discussion
11.2. Accessing All Images in the Web Page
Problem
Solution
Discussion
Namespace Variation
See Also
11.3. Discover All Images Within an Article
Problem
Solution
Discussion
See Also
11.4. Discover all Images in Articles Using the Selectors API
Problem
Solution
Discussion
Namespace Variation
See Also
11.5. Finding the Parent Element for a Group of Elements
Problem
Solution
Discussion
See Also
11.6. Highlighting the First Paragraph in Every Element
Problem
Solution
Discussion
See Also
11.7. Apply a Striping Theme to an Unordered List
Problem
Solution
Discussion
See Also
11.8. Creating an Array of All Elements of a Given Class
Problem
Solution
Discussion
See Also
11.9. Finding All Elements That Share an Attribute
Problem
Solution
Discussion
See Also
11.10. Finding All Checked Options
Problem
Solution
Discussion
See Also
11.11. Summing All the Values in a Table Row
Problem
Solution
Discussion
See Also
11.12. Get Element Attributes
Problem
Solution
Discussion
See Also
11.13. Get Style Information for an Element
Problem
Solution
Discussion
See Also
12. Creating and Removing Elements and Attributes
12.0. Introduction
See Also
12.1. Using innerHTML: A Quick and Easy Approach to Adding Content
Problem
Solution
Discussion
12.2. Inserting Elements Before Existing Page Elements
Problem
Solution
Discussion
Namespace Variation
See Also
12.3. Appending a New Element to the End of a Page
Problem
Solution
Discussion
12.4. Triggering Older Versions of IE to Style New Elements
Problem
Solution
Discussion
See Also
12.5. Inserting a New Paragraph
Problem
Solution
Discussion
See Also
12.6. Adding Text to a New Paragraph
Problem
Discussion
See Also
12.7. Adding Attributes to an Existing Element
Problem
Solution
Discussion
Namespace Variation
12.8. Testing for a Boolean Attribute
Problem
Solution
Discussion
See Also
12.9. Removing an Attribute
Problem
Solution
Discussion
See Also
12.10. Moving a Paragraph
Problem
Solution
Discussion
See Also
12.11. Replacing Links with Footnote Bullets
Problem
Solution
Discussion
12.12. Adding Rows to an Existing Table
Problem
Solution
Discussion
See Also
12.13. Removing a Paragraph from a div Element
Problem
Solution
Discussion
12.14. Deleting Rows from an HTML Table
Problem
Solution
Discussion
See Also
12.15. Changing the Element’s CSS Style Properties
Problem
Solution
Discussion
See Also
13. Working with Web Page Spaces
13.0. Introduction
13.1. Determining the Area of the Web Page
Problem
Solution
Discussion
See Also
13.2. Measuring Elements
Problem
Solution
Discussion
13.3. Locating Elements in the Page
Problem
Solution
Discussion
See Also
13.4. Hiding Page Sections
Problem
Solution
Discussion
See Also
13.5. Creating Collapsible Form Sections
Problem
Solution
Discussion
See Also
13.6. Adding a Page Overlay
Problem
Solution
Discussion
See Also
13.7. Creating Tab Pages
Problem
Solution
Discussion
See Also
13.8. Creating Hover-Based Pop-up Info Windows
Problem
Solution
Discussion
See Also
13.9. Collapsing or Resizing the Sidebar
Problem
Solution
Discussion
14. Creating Interactive and Accessible Effects with JavaScript, CSS, and ARIA
14.0. Introduction
See Also
14.1. Displaying a Hidden Page Section
Problem
Solution
Discussion
See Also
14.2. Creating an Alert Message
Problem
Solution
Discussion
See Also
14.3. Highlighting Form Field with Missing or Incorrect Data
Problem
Solution
Discussion
See Also
14.4. Adding Keyboard Accessibility to a Page Overlay
Problem
Solution
Discussion
See Also
14.5. Creating Collapsible Form Sections
Problem
Solution
Discussion
See Also
14.6. Displaying a Flash of Color to Signal an Action
Problem
Solution
Discussion
See Also
14.7. Adding ARIA Attributes to a Tabbed Page Application
Problem
Solution
Discussion
See Also
14.8. Live Region
Problem
Solution
Discussion
See Also
15. Creating Media Rich and Interactive Applications
15.0. Introduction
See Also
15.1. Creating Basic Shapes in Canvas (Using the canvas Element)
Problem
Solution
Discussion
See Also
15.2. Implementing Canvas Applications in IE
Problem
Solution
Discussion
15.3. Creating a Dynamic Line Chart in Canvas
Problem
Solution
Discussion
See Also
15.4. Adding JavaScript to an SVG File
Problem
Solution
Discussion
15.5. Accessing SVG from Web Page Script
Problem
Solution
Discussion
15.6. Emulating SVG in Internet Explorer
Problem
Solution
Discussion
See Also
15.7. Enable Interactive SVG Embedded in HTML
Problem
Solution
Discussion
See Also
15.8. Using the Math Functions to Create a Realistic, Ticking Analog Clock in SVG
Problem
Solution
Discussion
15.9. Integrating SVG and the Canvas Element in HTML
Problem
Solution
Discussion
15.10. Turning on WebGL Support in Firefox and WebKit/Safari
Problem
Solution
Discussion
See Also
15.11. Running a Routine When an Audio File Begins Playing
Problem
Solution
Discussion
See Also
15.12. Controlling Video from JavaScript with the video Element
Problem
Solution
Discussion
See Also
16. JavaScript Objects
16.0. Introduction
See Also
16.1. Defining a Basic JavaScript Object
Problem
Solution
Discussion
See Also
16.2. Keeping Object Members Private
Problem
Solution
Discussion
See Also
16.3. Expanding Objects with prototype
Solution
Discussion
16.4. Adding Getter/Setter to Objects
Problem
Solution
Discussion
See Also
16.5. Inheriting an Object’s Functionality
Problem
Solution
Discussion
16.6. Extending an Object by Defining a New Property
Problem
Solution
Discussion
See Also
16.7. Enumerating an Object’s Properties
Problem
Solution
Discussion
See Also
16.8. Preventing Object Extensibility
Problem
Solution
Discussion
See Also
16.9. Preventing Object Additions and Changes to Property Descriptors
Problem
Solution
Discussion
See Also
16.10. Preventing Any Changes to an Object
Problem
Solution
Discussion
See Also
16.11. One-Off Objects and Namespacing Your JavaScript
Problem
Solution
Discussion
See Also
16.12. Rediscovering “this” with Prototype.bind
Problem
Solution
Discussion
16.13. Chaining Your Object’s Methods
Problem
Solution
Discussion
See Also
17. JavaScript Libraries
17.0. Introduction
See Also
17.1. Packaging Your Code
Problem
Solution
Discussion
See Also
17.2. Testing Your Code with JsUnit
Problem
Solution
Discussion
17.3. Minify Your Library
Problem
Solution
Discussion
See Also
17.4. Hosting Your Library
Problem
Solution
Discussion
17.5. Using an External Library: Building on the jQuery Framework
Problem
Solution
Discussion
See Also
17.6. Using Existing jQuery Plug-ins
Problem
Solution
Discussion
17.7. Convert Your Library to a jQuery Plug-in
Problem
Solution
Discussion
17.8. Safely Combining Several Libraries in Your Applications
Problem
Solution
Discussion
See Also
18. Communication
18.0. Introduction
18.1. Accessing the XMLHttpRequest Object
Problem
Solution
Discussion
See Also
18.2. Preparing the Data for Transmission
Problem
Solution
Discussion
18.3. Determining the Type of Query Call
Problem
Solution
Discussion
See Also
18.4. Adding a Callback Function to an Ajax Request
Problem
Solution
Discussion
See Also
18.5. Checking for an Error Condition
Problem
Solution
Discussion
18.6. Processing a Text Result
Problem
Solution
Discussion
See Also
18.7. Making an Ajax Request to Another Domain (Using JSONP)
Problem
Solution
Discussion
See Also
18.8. Populating a Selection List from the Server
Problem
Solution
Discussion
18.9. Using a Timer to Automatically Update the Page with Fresh Data
Problem
Solution
Discussion
See Also
18.10. Communicating Across Windows with PostMessage
Problem
Solution
Discussion
19. Working with Structured Data
19.0. Introduction
19.1. Process an XML Document Returned from an Ajax Call
Problem
Solution
Discussion
See Also
19.2. Extracting Pertinent Information from an XML Tree
Problem
Solution
Discussion
See Also
19.3. Generate a JavaScript Object with JSON, Old-School Style
Problem
Solution
Discussion
See Also
19.4. Parse a JSON Formatted String
Problem
Solution
Discussion
See Also
19.5. Convert an Object to a Filtered/Transformed String with JSON
Problem
Solution
Discussion
See Also
19.6. Convert hCalendar Microformat Annotations into a Canvas Timeline
Problem
Solution
Discussion
See Also
19.7. Glean Page RDFa and Convert It into JSON Using rdfQuery and the jQuery RDF Plug-in
Problem
Solution
Discussion
See Also
20. Persistence
20.0. Introduction
See Also
20.1. Attaching Persistent Information to URLs
Problem
Solution
Discussion
See Also
20.2. Creating a Cookie to Persist Information Across Pages
Problem
Solution
Discussion
See Also
20.3. Persisting Information Using the History.pushState Method and window.onpopevent
Problem
Solution
Discussion
20.4. Using sessionStorage for Client-Side Storage
Problem
Solution
Discussion
See Also
20.5. Creating a localStorage Client-Side Data Storage Item
Problem
Solution
Discussion
See Also
20.6. Persisting Data Using a Relational Data Store
Problem
Solution
Discussion
See Also
21. JavaScript Outside the Box
21.0. Introduction
21.1. Creating a Browser Add-0n, Plug-in, or Extension
Problem
Solution
Discussion
Creating Google Chrome extensions
Mozilla extensions
Creating a Greasemonkey script
21.2. Creating Desktop and Mobile Widgets
Problem
Solution
Discussion
Developing Mac Dashboard widgets
The Opera Widgets development environment
21.3. Creating JavaScript Applications for the iPhone, Android, and BlackBerry with PhoneGap
Problem
Solution
Discussion
See Also
21.4. Enhancing Tools with JavaScript
Problem
Solution
Discussion
Working with the Adobe Bridge SDK and the ExtendScript Toolkit
Creating an OpenOffice macro
21.5. Creating Efficient Desktop Applications with Web Workers and the File API
Problem
Solution
Discussion
See Also
Index
About the Author
Colophon
SPECIAL OFFER: Upgrade this ebook with O’Reilly
← Prev
Back
Next →
← Prev
Back
Next →