The JavaScript Anthology: 101 Essential Tips, Tricks & Hacks (Paperback)
Cameron Adams, James Edwards
- 出版商: Sitepoint
- 出版日期: 2006-03-28
- 售價: $1,560
- 貴賓價: 9.5 折 $1,482
- 語言: 英文
- 頁數: 592
- 裝訂: Paperback
- ISBN: 0975240269
- ISBN-13: 9780975240267
-
相關分類:
JavaScript
無法訂購
買這商品的人也買了...
-
$750$638 -
$460$363 -
$780$702 -
$650$507 -
$580$493 -
$450$383 -
$300$240 -
$800$680 -
$480$374 -
$600$474 -
$580$493 -
$520$442 -
$743Microsoft Windows Workflow Foundation Step by Step (Paperback)
-
$880$695 -
$780$616 -
$290$226 -
$600$480 -
$360$306 -
$880$695 -
$650$553 -
$450$356 -
$690$587 -
$450$405 -
$680$537 -
$580$493
相關主題
商品描述
Description
“Take control with the ultimate JavaScript toolkit”
Among the 101 Tips, Tricks & Hacks you'll learn how-to:
- Create a slick yet accessible drop-down menu system
- Take control of your web pages with the DOM
- Validate forms in real time using regular expressions
- Optimize your code so that it runs faster
- Manage style sheets and modify styles on-the-fly
- Produce sophisticated drag-and-drop interaction
- Enhance your site with slick, animated transitions
- Create AJAX applications with the XMLHttpRequest object
…and much more. Far too many things to mention here!
Table of Contents
- Preface
- Who Should Read this Book?
- What’s in this Book?
- The Book’s Web Site
- The Code Archive
- Updates and Errata
- The SitePoint Forums
- The SitePoint Newsletters
- Your Feedback
- Acknowledgements
- Getting Started with JavaScript
- JavaScript Defined
- JavaScript’s Limitations
- Security Restrictions
- JavaScript Best Practices
- Providing for Users who Don’t Have JavaScript (Progressive Enhancement)
- Separating Content from Behavior (Unobtrusive Scripting)
- Using Braces and Semicolons (Consistent Coding Practice)
- Adding a Script to a Page
- Putting HTML Comments Around Code
- The language Attribute
- Getting Multiple Scripts to Work on the Same Page
- Hiding JavaScript Source Code
- Debugging a Script
- Understanding a Browser’s Built-in Error Reporting
- Using alert
- Using try-catch
- Writing to the Page or Window
- Using an External Debugger
- Strict Warnings
- Summary
- Working with Numbers
- Doing Math with JavaScript
- Rounding a Number to x Decimal Places
- Creating and Constraining Random Numbers
- Converting a Number to a String
- Formatting Currency Values
- Converting a String to a Number
- Converting Numbers to Ordinals (-st, -nd, -rd, -th)
- Summary
- Working with Strings
- Including a Special Character in a String
- Transforming the Character Case of a String
- Encoding a URL
- Comparing Two Strings
- Finding a Substring within a String
- Splitting a String into Substrings
- Creating a Regular Expression
- Testing whether a String Matches a Regular Expression
- Testing whether a String Contains Only Numeric Data
- Testing whether a String is a Valid Phone Number
- Testing whether a String is a Valid Email Address
- Searching and Replacing Text using a Regular Expression
- Summary
- Working with Arrays
- Using Array-literals
- Creating an Array of Arrays
- Indexing an Array with Strings Instead of Numbers
- Turning an Array into a String
- Adding or Removing Members from an Array
- Sorting an Array into Alphabetical or Numeric Order
- Sorting a Multi-dimensional Array
- Sorting an Array Randomly
- Summary
- Navigating the Document Object Model
- Accessing Elements
- Creating Elements and Text Nodes
- Changing the Type of an Element
- Removing an Element or Text Node
- Reading and Writing the Attributes of an Element
- Getting all Elements with a Particular Attribute Value
- Adding and Removing Multiple Classes to/from an Element
- Summary
- Processing and Validating Forms
- Reading and Writing the Data in a Text Field
- Reading and Setting the State of a Checkbox
- Reading and Setting the State of a Radio Button
- Reading and Setting the Value of a Select Box
- Validating a Mandatory Text Field
- Validating a Numeric Field
- Validating an Email Address Field
- Checking for Unselected Radio Buttons
- Stopping a Form Being Submitted Unless all its Fields are Valid
- Validating a Form with an Unknown Number of Fields
- Printing Inline Error Messages when Validating a Form
- Making Form Fields Appear or Disappear, Based on the Value of other Fields
- Summary
- Working with Windows and Frames
- Using Popup Windows
- What’s Wrong with Popups?
- How Do I Minimize the Problems?
- Opening Off-site Links in a New Window
- Communicating Between Frames
- Getting the Scrolling Position
- Making the Page Scroll to a Particular Position
- Getting the Viewport Size (the Available Space inside the Window)
- Summary
- Working with Cookies
- Writing Cookies
- Reading a Cookie
- Setting a Cookie to Expire at a Specific Date and Time
- Making a Cookie Accessible Only from a Specific Domain or Path
- Circumventing Browser Restrictions on the Number of Cookies you can Use
- Summary
- Working with Dates and Times
- Getting the Date and Time
- Formatting a Date into a Sentence
- Formatting the Time into a 12- or 24-hour Clock
- Comparing Two Dates
- Formatting the Difference Between Dates
- Summary
- Working with Images
- Preloading Images
- Swapping One Image for Another
- Displaying an Image at Random
- Making a Slideshow of Several Images
- Making an Image Fade in or out
- Making an Image-based Clock that Updates in Real Time
- Making a Progress Indicator
- Summary
- Detecting Browser Differences
- Identifying Support for a Particular Feature
- Identifying a Particular Browser
- Detecting Quirks Mode and Standards Mode
- Summary
- Using JavaScript with CSS
- Changing the Style of a Single Element
- Changing the Style of a Group of Elements
- Retrieving the Computed Style of an Element
- Making a Style Sheet Switcher
- Maintaining Alternate Style Sheet States
- Making a Style Sheet Switcher that Handles Multiple Media Types
- Reading and Modifying an Existing Style Sheet
- Adding New Style Sheet Rules
- Deleting a Rule from a Style Sheet
- Creating a New Style Sheet
- Summary
- Basic Dynamic HTML
- Handling Events
- The Short Way: Using Event Handlers
- The W3C Way (Event Listeners)
- Referencing the Target Element
- What is Event Bubbling, and How do I Control it?
- Finding the Size of an Element
- Finding the Position of an Element
- Detecting the Position of the Mouse Cursor
- Displaying a Tooltip when you Mouse Over an Element
- Sorting Tables by Column
- Summary
- Time and Motion
- Using setTimeout and setInterval
- Making an Object Move Along a Set Path
- Making Animation Less Jerky
- Animation Frame Times
- Changing Between Frames
- Complexity of the Animation
- The Speed of the Computer
- The Speed of the Browser
- Implementing Drag-and-drop Behavior
- Reordering a List Using Drag-and-drop Functionality
- Making a Scrolling News Ticker
- Creating Clip-based Transition Effects
- Making a Slider Control
- Summary
- DHTML Menus and Navigation
- Making a Drop-down or Fly-out Menu
- Adding Arrows to Indicate the Presence of a Submenu
- Adding Timers so the Menus Don’t Open and Close so Abruptly
- Making Sure the Menus Stay Inside the Window
- Making the Menus Display Over select Elements
- Making a Folder Tree or Expanding Menu
- Discussion
- Indicating Expanded Branches in a Menu
- Allowing Only One Menu Branch to Be Open at Any Time
- Opening the Current Sub-branch Automatically
- Summary
- JavaScript and Accessibility
- Is JavaScript Inaccessible?
- What is Accessibility?
- Who are the Affected Users?
- Making Scripts Accessible to the Keyboard
- Using Device-independent Event Handlers
- Making Scripts Accessible to the Keyboard as well as the Mouse
- Rollovers and Revealing Content
- Form Validation
- Drag-and-drop Functionality
- AJAX and other Remote Scripting Techniques
- Making title Attribute Tooltips Display on Focus
- Making a DHTML Menu Accessible to the Keyboard
- Making a DHTML Menu Usable via the Keyboard
- Making a DHTML Slider Control Accessible to the Keyboard
- Making Scripts Accessible to Screen Readers
- JavaScript Behaviors
- Rollovers and Revealing Content
- Form Validation
- Non-user-initiated Scripts
- AJAX and other Remote Scripting Techniques
- Tricks and Hacks
- Towards Best Practice
- The Mission
- The Joy of Mode
- Reaching toward a Best Practice Approach
- Into the Future
- Summary
- Using JavaScript with Flash
- Detecting whether Flash is Installed in a Browser
- Communicating Between JavaScript and Flash
- FSCommand
- Flash/JavaScript Integration Kit
- Summary
- Building Web Applications with JavaScript
- Retrieving Data Using XMLHttpRequest
- Requesting Data from a Server
- Parsing the Data
- Caching
- AJAX Frameworks
- Retrieving Data without Using XMLHttpRequest
- Creating Custom Dialogs (Such as Popup Forms)
- Creating Editable Elements
- Controlling Text Selections
- Creating an Auto-complete Text Field
- Summary
- Object Orientation in JavaScript
- What’s so Good about Object Orientation?
- Abstraction
- Encapsulation
- Class Inheritance
- Polymorphism
- Object Based Code vs Object Oriented Code
- Writing an Object Oriented Script
- Creating Methods for an Object
- Prototype-based Method Creation
- Modelling Inheritance
- Understanding Scope
- Implementing Namespaces
- Summary
- Keeping up the Pace
- Making Scripts Run Faster
- Saving References to Objects you Use Frequently
- Using Ternary Operators and Switch Statements
- Optimizing Loops
- Avoiding eval
- Avoiding Strict Warnings
- Optimizing for a Particular Browser
- Writing Scripts Using Less Code
- Dividing Tasks into Functions (or Using OO)
- Using Arrays and Iteration to Avoid Code Repetition
- Compacting Conditions and Return Statements
- Optimizing Scripts for the Web
- Removing Comments and Unnecessary Whitespace
- Compacting the Names of Variables and Properties
- Avoiding Memory Leaks
- Avoiding Circular References
- Cleaning Up After the Fact
- Making Scripts Run Before the Load Event
- Summary
- Index