HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
PRACTICAL, EXAMPLE-RICH COVERAGE OF:
VISIT WWW.DEITEL.COM
The practicing programmer’s Deitel® guide to XHTML®, CSS®, JavaScript™, XML® and Ajax RIA development.
This book applies the Deitel signature live-code approach to teaching the client side of Rich Internet Applications (RIA) development. The book presents concepts in the context of 100+ fully tested programs (6,000+ lines of code), complete with syntax shading, detailed descriptions and sample outputs. The book features over 150 tips that will help you build robust client-side web applications.
Start with an introduction to Extensible HyperText Markup Language (XHTML®) and Cascading Style Sheets (CSS®), then rapidly move on to the details of JavaScript™ programming. Finish with more advanced client-side development technologies including XHTML’s Document Object Model (DOM®), Extensible Markup Language (XML®), XML’s DOM, JavaScript Object Notation (JSON) and Asynchronous JavaScript and XML (Ajax). When you’re finished, you’ll have everything you need to build the client side of Web 2.0 Rich Internet Applications (RIAs). The book culminates with several substantial Ajax-enabled RIAs, including a book cover viewer (JavaScript/DOM), an address book (Ajax/consuming web services) and a calendar application (Ajax/Dojo/consuming web services).
TheDeitel® Developer Seriesis designed for professional programmers. The series presents focused treatments of emerging technologies, including .NET, Java™, web services, Internet and web development and more.
Pre-Publication Reviewer Testimonials
“One of the best introductions to JavaScript.”—Raymond Wisman, Indiana University Southeast
“Cements the browser as a first-class development platform.”—Johnvey Hwang, Splunk, Inc.
“Excellent for learning to develop standards-compliant web applications.”—Paul Vencill, MITRE, Inc.
“The CSS chapter is compact, concise and full of useful info!”—Billy B. L. Lim, Illinois State University
“A good introduction to the DOM; doesn’t trip over cross-browser incompatibilities.”—Eric Lawrence, Microsoft
“Exceptionally clear Ajax tutorial; best I’ve reviewed! Great solutions for the very cool type-ahead and edit-in-place Ajax features. ‘Libraries to Help Eliminate Cross-Browser Compatibility Issues’ is fantastic. This book and your websites will be often-visited resources (if not best practices in themselves).”—John Peterson, Insync and V.I.O. Inc.
“I wish I’d had this when I was learning to program.”—Joe Kromer, New Perspective
JavaScript and the Document Object Model (DOM)
Preface xv
Before You Begin xxiii
Chapter 1: Introduction 1
1.1 Introduction 2
1.2 History of the Internet and World Wide Web 3
1.3 World Wide Web Consortium (W3C) 5
1.4 Web 2.0 5
1.5 Key Software Trend: Object Technology 7
1.6 JavaScript: Object-Based Scripting for the Web 8
1.7 Browser Portability 9
1.8 Web Resources 9
Chapter 2: Introduction to XHTML 10
2.1 Introduction 11
2.2 Editing XHTML 12
2.3 First XHTML Example 12
2.4 W3C XHTML Validation Service 15
2.5 Headings 15
2.6 Linking 16
2.7 Images 19
2.8 Special Characters and Horizontal Rules 22
2.9 Lists 24
2.10 Tables 27
2.11 Forms 31
2.12 Internal Linking 38
2.13 meta Elements 40
2.14 Web Resources 42
Chapter 3: Cascading Style Sheets™ (CSS) 43
3.1 Introduction 44
3.2 Inline Styles 45
3.3 Embedded Style Sheets 46
3.4 Conflicting Styles 49
3.5 Linking External Style Sheets 52
3.6 Positioning Elements 54
3.7 Backgrounds 58
3.8 Element Dimensions 59
3.9 Box Model and Text Flow 61
3.10 Media Types 65
3.11 Building a CSS Drop-Down Menu 67
3.12 User Style Sheets 69
3.13 CSS 3 73
3.14 Web Resources 73
Chapter 4: JavaScript: Introduction to Scripting 74
4.1 Introduction 75
4.2 Simple Program: Displaying a Line of Text in a Web Page 76
4.3 Modifying Our First Program 79
4.4 Obtaining User Input with prompt Dialogs 84
4.5 Data Types in JavaScript 90
4.6 Arithmetic 90
4.7 Decision Making: Equality and Relational Operators 91
4.8 Web Resources 95
Chapter 5: JavaScript: Control Statements I 96
5.1 Introduction 97
5.2 Control Statements 97
5.3 if Selection Statement 98
5.4 if…else Selection Statement 99
5.5 while Repetition Statement 103
5.6 Counter-Controlled Repetition 104
5.7 Formulating Algorithms: Sentinel-Controlled Repetition 106
5.8 Formulating Algorithms: Nested Control Statements 109
5.9 Assignment Operators 112
5.10 Increment and Decrement Operators 113
5.11 Web Resources 116
Chapter 6: JavaScript: Control Statements II 117
6.1 Introduction 118
6.2 Essentials of Counter-Controlled Repetition 118
6.3 for Repetition Statement 120
6.4 Examples Using the for Statement 124
6.5 switch Multiple-Selection Statement 128
6.6 do…while Repetition Statement 133
6.7 break and continue Statements 135
6.8 Labeled break and continue Statements 138
6.9 Logical Operators 140
Chapter 7: JavaScript: Functions 145
7.1 Introduction 146
7.2 Functions 146
7.3 Programmer-Defined Functions 147
7.4 Function Definitions 147
7.5 Random Number Generation 152
7.6 Example: Game of Chance 157
7.7 Another Example: Random Image Generator 163
7.8 Scope Rules 165
7.9 JavaScript Global Functions 167
7.10 Recursion 168
7.11 Recursion vs. Iteration 172
Chapter 8: JavaScript: Arrays 173
8.1 Introduction 174
8.2 Arrays 174
8.3 Declaring and Allocating Arrays 175
8.4 Examples Using Arrays 176
8.5 Random Image Generator Using Arrays 183
8.6 References and Reference Parameters 184
8.7 Passing Arrays to Functions 185
8.8 Sorting Arrays 188
8.9 Multidimensional Arrays 190
8.10 Building an Online Quiz 194
Chapter 9: JavaScript: Objects 197
9.1 Introduction 198
9.2 Introduction to Object Technology 198
9.3 Math Object 201
9.4 String Object 202
9.5 Date Object 213
9.6 Boolean and Number Objects 218
9.7 document Object 219
9.8 window Object 220
9.9 Using Cookies 225
9.10 Multipage HTML and JavaScript Application 229
9.11 Using JSON to Represent Objects 237
Chapter 10: Document Object Model (DOM): Objects and Collections 238
10.1 Introduction 239
10.2 Modeling a Document: DOM Nodes and Trees 239
10.3 Traversing and Modifying a DOM Tree 242
10.4 DOM Collections 253
10.5 Dynamic Styles 255
10.6 Summary of the DOM Objects and Collections 261
Chapter 11: JavaScript: Events 263
11.1 Introduction 264
11.2 Registering Event Handlers 264
11.3 Event onload 267
11.4 Event onmousemove, the event Object and this 268
11.5 Rollovers with onmouseover and onmouseout 273
11.6 Form Processing with onfocus and onblur 277
11.7 Form Processing with onsubmit and onreset 280
11.8 Event Bubbling 282
11.9 More Events 284
11.10 Web Resources 285
Chapter 12: XML and RSS 286
12.1 Introduction 287
12.2 XML Basics 287
12.3 Structuring Data 290
12.4 XML Namespaces 297
12.5 Document Type Definitions (DTDs) 300
12.6 W3C XML Schema Documents 304
12.7 XML Vocabularies 310
12.8 Extensible Stylesheet Language and XSL Transformations 314
12.9 Document Object Model (DOM) 324
12.10 RSS 342
12.11 Web Resources 349
Chapter 13: Ajax-Enabled Rich Internet Applications 350
13.1 Introduction 351
13.2 Traditional Web Applications vs. Ajax Applications 352
13.3 Rich Internet Applications (RIAs) with Ajax 353
13.4 History of Ajax 355
13.5 “Raw” Ajax Example Using the XMLHttpRequest Object 356
13.6 Using XML and the DOM 361
13.7 Creating a Full-Scale Ajax-Enabled Application 366
13.8 Dojo Toolkit 379
13.9 Web Resources 388
Appendix A: XHTML Special Characters 389
Appendix B: XHTML Colors 390
Appendix C: JavaScript Operator Precedence Chart 393
C.1 Operator Precedence Chart 393
Index 395