JavaScript & DHTML Cookbook,第2版(影印版)
分類: 图书,计算机/网络,程序设计,Java Java Script J2EE,
作者: (美)古德曼(Goodman,D.) 著
出 版 社:
出版时间: 2008-3-1字数: 638000版次: 1页数: 582印刷时间: 2008/03/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787564111403包装: 平装编辑推荐
如果你想编写自己的脚本并理解它们的内部机制,而不是仅仅依赖于一个商业化的网络开发框架,这本《JavaScript&DHTML Cookbook》就是必备书籍。
Danny Goodman从20世纪70年代后期就开始为个人计算机和电子消费产品写作。在以后的岁月里,他最受欢迎的书籍——关于HyperCard、AppleScript、JavaScript以及动态HTML——已经涵盖了各种编程环境,它们对于业余爱好者而言易于理解,对于专家而言也仍然足够强劲。他的《Dynamic HTML权威参考》目前已更新至第三版,是0’Reilly的最畅销书籍之一。
内容简介
在当今Web 2.0的世界里,JavaScript和动态HTM1处于热门新方法的中心,用来设计客户端的高度交互页面。考虑到现实情况,新版《JavaScript&DHTM1 Cookbook》为网络开发人员经常碰到的各种非常特殊的脚本问题提供了易于理解的解决方案。每个实例包括一段有针对性的代码,你可以立刻将其嵌入到你的应用程序当中。在经过数年的时间读过几千个论坛的讨论之后,本书作者同时也是脚本编程先锋的Danny Goodman汇集了一个问题清单,这些问题经常让各种经验程度的脚本语言开发人员都觉得烦恼。对于他提到的每个问题,Goodman不仅提供代码,也阐释解决方法如何生效以及为什么可行。书中的实例涵盖各个方面,从简单任务,如使用JavaScript操作字符串和验证日期,到展示复杂任务的全套程序库,如跨浏览器定位HTM1元素、排序表以及在客户端实现Ajax功能。
本书包括150多个实例,同时针对新手和有经验的脚本开发人员:
•用交互的表单和样式表工作
•提供用户友好的页面导航
•通过文档对象模型(Document Object Mode1)脚本制作动态内容
•为静态内容添加视觉效果
•在浏览器中使用XM1数据工作
本书对上一版使用的很多实例都进行了修订,帮助你构建可扩展的Web 2.0用户界面,并添加了一些新的实例以提供客户端Ajax解决方案。本书中的每一个实例都符合最新的W3C标准,兼容各种浏览器,包括Internet Exp1orer 7、Firefox 2、Safari和Opera 9。
目录
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