INTRODUCTION xix
CHAPTER 1: INTRODUCTION TO JAVASCRIPT AND THE WEB 1
Introduction to JavaScript 1
Where Do My Scripts Go? 7
Your First Simple JavaScript Program 9
Writing More JavaScript 10
A Brief Look at Browsers and Compatibility Problems 15
Summary 16
CHAPTER 2: DATA TYPES AND VARIABLES 17
Types of Data in JavaScript 18
Variables-Storing Data in Memory 20
Using Data-Calculations and Basic String Manipulation 26
Data Type Conversion 38
Arrays 43
Summary 52
CHAPTER 3: DECISIONS AND LOOPS 55
Decision Making-The if and switch Statements 56
Looping-The for and while Statements 76
Summary 84
CHAPTER 4: FUNCTIONS AND SCOPE 87
Creating Your Own Functions 88
Scope and Lifetime 92
Functions as Values 94
Summary 97
CHAPTER 5: JAVASCRIPT-AN OBJECT?]BASED LANGUAGE 99
Object?]Based Programming 100
JavaScript's Native Object Types 105
Creating Your Own Custom Objects 144
Creating New Types of Objects (Reference Types) 148
Summary 151
CHAPTER 6: STRING MANIPULATION 153
Additional String Methods 154
Regular Expressions 158
The String Object 175
Using the RegExp Object's Constructor 183
Summary 191
CHAPTER 7: DATE, TIME, AND TIMERS 193
World Time 194
Timers in a Web Page 200
Summary 203
CHAPTER 8: PROGRAMMING THE BROWSER 205
Introduction to the Browser's Objects 206
Determining the User's Browser 218
Summary 225
CHAPTER 9: DOM SCRIPTING 229
The Web Standards 231
The Document Object Model 234
Manipulating the DOM 259
Summary 268
CHAPTER 10: EVENTS 271
Types of Events 272
Connecting Code to Events 273
The Standard Event Model 283
Event Handling in Old Versions of Internet Explorer 298
Writing Cross?]Browser Code 307
Native Drag and Drop 317
Summary 333
CHAPTER 11: HTML FORMS: INTERACTING WITH THE USER 335
HTML Forms 336
Traditional Form Object Properties and Methods 338
HTML5 Form Object Properties and Methods 375
Summary 386
CHAPTER 12: JSON 391
XML 392
JSON 393
Summary 400
CHAPTER 13: DATA STORAGE 403
Baking Your First Cookie 404
Creating a Cookie 416
Getting a Cookie's Value 419
Cookie Limitations 424
Cookie Security and IE 425
Web Storage 426
Summary 432
CHAPTER 14: AJAX 435
What Is Ajax? 436
Using the XMLHttpRequest Object 438
Creating a Simple Ajax Module 441
Validating Form Fields with Ajax 444
Things to Watch Out For 453
Summary 462
CHAPTER 15: HTML5 MEDIA 463
A Primer 464
Scripting Media 467
Summary 481
CHAPTER 16: JQUERY 483
Getting jQuery 484
jQuery's API 485
Summary 504
CHAPTER 17: OTHER JAVASCRIPT LIBRARIES 505
Digging into Modernizr 506
Diving into Prototype 515
Delving into MooTools 531
Summary 546
CHAPTER 18: COMMON MISTAKES, DEBUGGING,
AND ERROR HANDLING 549
D'oh! I Can't Believe I Just Did That: Some Common Mistakes 550
Error Handling 555
Debugging 563
Summary 583
APPENDIX A: ANSWERS TO EXERCISES 587
APPENDIX B: JAVASCRIPT CORE REFERENCE 653
APPENDIX C: W3C DOM REFERENCE 683
APPENDIX D: LATIN?]1 CHARACTER SET 715
INDEX 723