Danny Goodman從20世紀(jì)70年代后期就開始為個人計算機(jī)和電子消費產(chǎn)品寫作。在以后的歲月里,他最受歡迎的書籍標(biāo)題——關(guān)于HyperCard、AppleScript、JavaScript以及動態(tài)HTML——已經(jīng)涵蓋了各種編程環(huán)境,它們對于業(yè)余愛好者而言易于理解,對于專家而言也仍然足夠強(qiáng)勁。他的《Dynamic HTML權(quán)威參考》目前已更新至第三版,是O’Reilly的最暢銷書籍之一。
圖書目錄
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