JavaScript & DHTML Cookbook, 2/e

JavaScript & DHTML Cookbook, 2/e

作者: Danny Goodman
出版社: O'Reilly
出版在: 2007-08-28
ISBN-13: 9780596514082
ISBN-10: 0596514085
裝訂格式: Paperback
總頁數: 606 頁





內容描述


Description

In today's Web 2.0 world, JavaScript and
Dynamic HTML are at the center of the hot new approach to designing highly
interactive pages on the client side. With this environment in mind, the new
edition of this book offers bite-sized solutions to very specific scripting
problems that web developers commonly face. Each recipe includes a focused
piece of code that you can insert right into your application.Why is
JavaScript & DHTML Cookbook so popular? 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. For every problem he addresses, Goodman not only offers
code, but a discussion of how and why the solution works. 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, sorting tables, and implementing Ajax features
on the client.Ideal for novices as well as experienced scripters, this
book contains more than 150 recipes for:

Working with interactive forms and style sheets
Presenting user-friendly page navigation
Creating dynamic content via Document Object Model scripting
Producing visual effects for stationary content
Positioning HTML elements
Working with XML data in the browser Recipes in this Cookbook
are compatible with the latest W3C standards and browsers, including Internet
Explorer 7, Firefox 2, Safari, and Opera 9. Several new recipes provide
client-side Ajax solutions, and many recipes from the previous edition have
been revised to help you build extensible user interfaces for Web 2.0
applications. If you want to write your own scripts and understand how they
work, rather than rely on a commercial web development framework, the
JavaScript & DHTML Cookbook is a must.
Table of Contents

Preface

  1. Strings       1.1 Concatenating (Joining)
    Strings        1.2 Improving String Handling
    Performance        1.3 Accessing Substrings 
          1.4 Changing String Case   
        1.5 Testing Equality of Two Strings     
      1.6 Testing String Containment Without Regular Expressions 
          1.7 Testing String Containment with Regular
    Expressions        1.8 Searching and Replacing
    Substrings        1.9 Using Special and Escaped
    Characters        1.10 Reading and Writing
    Strings for Cookies        1.11 Converting
    Between Unicode Values and String Characters     
      1.12 Encoding and Decoding URL Strings     
      1.13 Encoding and Decoding Base64 Strings 
  2. Numbers and Dates       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.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 
          3.14 Using Objects to Reduce Naming Conflicts 
  4. Variables, Functions, and Flow Control       4.1
    Creating a JavaScript Variable        4.2
    Creating a Named Function        4.3 Nesting
    Named Functions        4.4 Creating an Anonymous
    Function        4.5 Delaying a Function
    Call        4.6 Branching Execution Based on
    Conditions        4.7 Handling Script Errors
    Gracefully        4.8 Improving Script
    Performance 
  5. Browser Feature Detection       5.1 Detecting the
    Browser Brand        5.2 Detecting an Early
    Browser Version        5.3 Detecting the Internet
    Explorer Version        5.4 Detecting the Mozilla
    Version        5.5 Detecting the Safari
    Version        5.6 Detecting the Opera
    Version        5.7 Detecting the Client Operating
    System        5.8 Detecting Object Support 
          5.9 Detecting Object Property and Method
    Support        5.10 Detecting W3C DOM Standard
    Support        5.11 Detecting the Browser Written
    Language        5.12 Detecting Cookie
    Availability        5.13 Defining Browser- or
    Feature-Specific Links        5.14 Testing on
    Multiple Browser Versions 
  6. Managing Browser Windows       6.1 Living with
    Browser Window Control Limitations        6.2
    Setting the Main Window's Size        6.3
    Positioning the Main Window        6.4 Maximizing
    the Main Window        6.5 Creating a New
    Window        6.6 Bringing a Window to the
    Front        6.7 Communicating with a New
    Window        6.8 Communicating Back to the Main
    Window        6.9 Using Internet Explorer
    Modal/Modeless Windows        6.10 Simulating a
    Cross-Browser Modal Dialog Window        6.11
    Simulating a Window with Layers 
  7. Managing Multiple Frames       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 Ensuring 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.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 Using a Custom Validation Object        8.6
    Changing a Form's Action        8.7 Blocking
    Submissions from the Enter Key        8.8
    Advancing Text Field Focus with the Enter Key     
      8.9 Submitting a Form by an Enter Key Press in Any Text Box 
          8.10 Disabling Form Controls 
          8.11 Hiding and Showing Form Controls 
          8.12 Allowing Only Numbers (or Letters) in a Text
    Box        8.13 Auto-Tabbing for Fixed-Length
    Text Boxes        8.14 Changing select Element
    Content        8.15 Copying Form Data Between
    Pages 
  9. Managing Events       9.1 Equalizing the IE and
    W3C Event Models        9.2 Initiating a Process
    After the Page Loads        9.3 Appending
    Multiple Load Event Handlers        9.4
    Determining the Coordinates of a Click Event     
      9.5 Preventing an Event from Performing Its Default Behavior 
          9.6 Blocking Duplicate Clicks 
          9.7 Determining Which Element Received an Event 
          9.8 Determining Which Mouse Button Was
    Pressed        9.9 Reading Which Character Key
    Was Typed        9.10 Reading Which Noncharacter
    Key Was Pressed        9.11 Determining Which
    Modifier Keys Were Pressed During an Event       
    9.12 Determining the Element the Cursor Rolled From/To   
        9.13 Synchronizing Sounds to Events 
  10. Page Navigation Techniques       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.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 Recent Browsers into
    Standards-Compatibility Mode 
  12. Visual Effects for Stationary Content       12.1
    Precaching Images        12.2 Swapping Images
    (Rollovers)        12.3 Reducing Rollover Image
    Downloads with JavaScript        12.4 Reducing
    Rollover Image Downloads with CSS        12.5
    Dynamically Changing Image Sizes        12.6
    Changing Text Style Properties        12.7
    Offering Body Text Size Choices to Users       
    12.8 Creating Custom Link Styles        12.9
    Changing Page Background Colors and Images       
    12.10 Hiding and Showing Elements        12.11
    Adjusting Element Transparency        12.12
    Creating Transition Visual Effects        12.13
    Drawing Charts in the Canvas Element 
  13. Positioning HTML Elements       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   
        13.14 Creating a Slider Control 
  14. Creating Dynamic Content       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 HTML 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 Referencing All Elements of the Same
    Class        14.15 Replacing Portions of Body
    Content        14.16 Removing Body Content 
          14.17 Using XMLHttpRequest for a REST
    Request        14.18 Using XMLHttpRequest for a
    SOAP Call        14.19 Sorting Dynamic
    Tables        14.20 Walking the Document Node
    Tree        14.21 Capturing Document
    Content 
  15. Dynamic Content Applications       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 Designing a User-Editable Content
    Page        15.5 Creating a Slide Show 
          15.6 Auto-Scrolling the Page 
          15.7 Greeting Users with Their Time of Day 
          15.8 Displaying the Number of Days Before Christmas 
          15.9 Displaying a Countdown Timer 
          15.10 Creating a Calendar Date Picker 
          15.11 Displaying an Animated Progress Bar 
    A. Keyboard Event Character Values
    B. Keyboard Key Code Values
    C. ECMAScript Reserved Keywords
    Index



相關書籍

Kafka 源碼解析與實戰

作者 王亮

2007-08-28

Build Mobile Apps with Ionic 4 and Firebase: Hybrid Mobile App Development

作者 Fu Cheng

2007-08-28

JavaScript面向對象編程指南 第3版

作者 Ved Antani

2007-08-28