100% found this document useful (4 votes)
45 views44 pages

Advanced JavaScript 2nd Edition by Chuck Easttom ISBN 155622852X 9781556228520 PDF Download

The document provides information about the book 'Advanced JavaScript 2nd Edition' by Chuck Easttom, including its ISBN and a link for download. It also lists other related books and their respective details. The contents of the book cover various JavaScript topics, including fundamentals, object-oriented programming, and debugging scripts.

Uploaded by

nevziendade
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
45 views44 pages

Advanced JavaScript 2nd Edition by Chuck Easttom ISBN 155622852X 9781556228520 PDF Download

The document provides information about the book 'Advanced JavaScript 2nd Edition' by Chuck Easttom, including its ISBN and a link for download. It also lists other related books and their respective details. The contents of the book cover various JavaScript topics, including fundamentals, object-oriented programming, and debugging scripts.

Uploaded by

nevziendade
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

Advanced JavaScript 2nd Edition by Chuck Easttom

ISBN 155622852X 9781556228520 pdf download

https://ebookball.com/product/advanced-javascript-2nd-edition-by-
chuck-easttom-isbn-155622852x-9781556228520-13370/

Explore and download more ebooks or textbooks


at ebookball.com
We have selected some products that you may be interested in
Click the link to download now or visit ebookball.com
for more options!.

Computer Crime Investigation and the Law 1st Edition by


Chuck Easttom, Jeff Taylor ISBN 1435455320 9781435455320

https://ebookball.com/product/computer-crime-investigation-and-the-
law-1st-edition-by-chuck-easttom-jeff-taylor-
isbn-1435455320-9781435455320-11852/

Object Oriented JavaScript 2nd Edition by Stoyan Stefanov,


Kumar Chetan Sharma ISBN 9781849693134 1849693137

https://ebookball.com/product/object-oriented-javascript-2nd-edition-
by-stoyan-stefanov-kumar-chetan-sharma-
isbn-9781849693134-1849693137-20218/

Superviviente 1st Edition by Chuck Palahniuk

https://ebookball.com/product/superviviente-1st-edition-by-chuck-
palahniuk-14964/

JavaScript and jQuery The Missing Manual 2nd Edition by


McFarland, David Sawyer ISBN 1449399029 9781449399023

https://ebookball.com/product/javascript-and-jquery-the-missing-
manual-2nd-edition-by-mcfarland-david-sawyer-
isbn-1449399029-9781449399023-11302/
Computer Security Fundamentals 1st edition by William
Easttom II ISBN 0135774772 978-0135774779

https://ebookball.com/product/computer-security-fundamentals-1st-
edition-by-william-easttom-ii-isbn-0135774772-978-0135774779-16578/

Superviviente 1st edition by Chuck Palahniuk ISBN


009928264X 978-0099282648

https://ebookball.com/product/superviviente-1st-edition-by-chuck-
palahniuk-isbn-009928264x-978-0099282648-11848/

Advanced Practice Nursing Procedures 2nd Edition by


Margaret Colyar ISBN 1719642397 9781719642392

https://ebookball.com/product/advanced-practice-nursing-
procedures-2nd-edition-by-margaret-colyar-
isbn-1719642397-9781719642392-6384/

JavaScript Mini FAQ 1st Edition by Danny Goodman ISBN

https://ebookball.com/product/javascript-mini-faq-1st-edition-by-
danny-goodman-isbn-11420/

Advanced Nursing Practice 2nd Edition by Paula


McGee,George Castledine 1405102349 9781405102346

https://ebookball.com/product/advanced-nursing-practice-2nd-edition-
by-paula-mcgee-george-castledine-1405102349-9781405102346-814/
Advanced
JavaScript
Second Edition

Chuck Easttom

Wordware Publishing, Inc.


© 2001, Wordware Publishing, Inc.
All Rights Reserved
2320 Los Rios Boulevard
Plano, Texas 75074

No part of this book may be reproduced in any form or by


any means without permission in writing from
Wordware Publishing, Inc.

Printed in the United States of America

ISBN 1-55622-852-X
10 9 8 7 6 5 4 3 2 1
0105

Product names mentioned are used for identification purposes only and may be trademarks of their respective
companies.

All inquiries for volume purchases of this book should be addressed to Wordware Publishing, Inc., at the
above address. Telephone inquiries may be made by calling:
(972) 423-0090
Contents Summary n iii

Contents Summary

Chapter 1 Introduction to JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . 1


Chapter 2 HTML Primer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Chapter 3 Writing Your First JavaScript . . . . . . . . . . . . . . . . . . . . . . . 21
Chapter 4 JavaScript Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . 34
Chapter 5 Object-Oriented Programming . . . . . . . . . . . . . . . . . . . . . . . 68
Chapter 6 Functions and Variable Scope . . . . . . . . . . . . . . . . . . . . . . . 75
Chapter 7 Utilizing JavaScript Operators . . . . . . . . . . . . . . . . . . . . . . . 93
Chapter 8 JavaScript by Example—A Review. . . . . . . . . . . . . . . . . . . . 116
Chapter 9 Events in JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Chapter 10 Building and Extending Objects . . . . . . . . . . . . . . . . . . . . . 145
Chapter 11 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Chapter 12 Time and Date in JavaScript . . . . . . . . . . . . . . . . . . . . . . . 192
Chapter 13 JavaScript Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Chapter 14 Handling Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Chapter 15 Browser Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Chapter 16 Utilizing the Status Bar . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Chapter 17 URLs and JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Chapter 18 Using the History List . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Chapter 19 The document Object—Colors, Output, and Properties . . . . . . . . 322
Chapter 20 Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Chapter 21 Links, Anchors, and Image Maps . . . . . . . . . . . . . . . . . . . . 403
Chapter 22 Implementing Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Chapter 23 Images and Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Chapter 24 Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Chapter 25 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Chapter 26 Evaluation and Compilation . . . . . . . . . . . . . . . . . . . . . . . 568
Chapter 27 General Software Detection . . . . . . . . . . . . . . . . . . . . . . . 576
Chapter 28 Plug-ins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
iv n Contents Summary

Chapter 29 LiveConnect—Connecting JavaScript, Java, and Plug-ins . . . . . . 593


Chapter 30 JavaScript Extensions for Layers . . . . . . . . . . . . . . . . . . . . 621
Chapter 31 Style Sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
Chapter 32 Security Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Chapter 33 Debugging Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
Chapter 34 JavaScript and VRML . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
Chapter 35 JavaScript Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . 658
Appendix A HTML-Generated Object Map . . . . . . . . . . . . . . . . . . . . . . . 667
Appendix B JavaScript Object Specification Syntax . . . . . . . . . . . . . . . . . 670
Appendix C ASCII Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
Appendix D Online Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
Contents n v

Contents

Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
Chapter 1 Introduction to JavaScript . . . . . . . . . . . . . . . . . . . 1
The World Wide Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Competition on the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Extending HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
CGI Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Helpers, Plug-ins, Applets, and CGI. . . . . . . . . . . . . . . . . . . . . . . . . 3
Helpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Plug-ins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Java Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
CGI (Common Gateway Interface) . . . . . . . . . . . . . . . . . . . . . . . . 4
What is JavaScript? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Who Can Benefit from JavaScript?. . . . . . . . . . . . . . . . . . . . . . . . . . 5
The History of JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
JavaScript in a Browser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Client-side JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Browser Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
What Can JavaScript Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Banners. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Form Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
JavaScript and Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
JavaScript Resembles Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
JavaScript Differs from Java . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
JavaScript and Java are Complementary Languages . . . . . . . . . . . . . . 12
JavaScript’s Current Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
The Future of JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Chapter 2 HTML Primer . . . . . . . . . . . . . . . . . . . . . . . . . . 14
HTML Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Chapter 3 Writing Your First JavaScript . . . . . . . . . . . . . . . . . 21
Essential Authoring Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Choosing a Text Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Choosing a Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
vi n Contents

Basic JavaScript Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22


The <SCRIPT> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Internal Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
External Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Hiding the Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Problems with Code Hiding . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Alternate Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Placing JavaScript Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Using the Semicolon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
JavaScript is Case Sensitive . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Using Quotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Your First Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Printing JavaScript Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Updating a Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Chapter 4 JavaScript Fundamentals . . . . . . . . . . . . . . . . . . . 34
“Building” a Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Data Types in JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
The Value Null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Variable Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
JavaScript Entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Type Conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Mixing Strings and Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Integer Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Decimal Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Octal Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Hexadecimal Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Converting from Decimal to Other Bases . . . . . . . . . . . . . . . . . . 41
Converting from a Specified Base to Decimal . . . . . . . . . . . . . . . . 42
Referring to Octal and Hexadecimal Integers . . . . . . . . . . . . . . . . 42
Floating-Point Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Boolean Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
String Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Making Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Multiple Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Nested Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Evaluating Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Testing Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Contents n vii

Function Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Calling Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Control Structures in JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Alert Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Confirm Boxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Prompt Boxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
if Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
else Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Nested if-else Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Loop Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
for Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
while Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
for…in Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
break Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
continue Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
with Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Chapter 5 Object-Oriented Programming. . . . . . . . . . . . . . . . . 68
Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Using the Array Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Object Based Versus Object Oriented . . . . . . . . . . . . . . . . . . . . . . . 73
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Chapter 6 Functions and Variable Scope . . . . . . . . . . . . . . . . 75
Variable Scope and Storage Class. . . . . . . . . . . . . . . . . . . . . . . . . . 75
What are Functions?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Defining and Calling Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Function Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Using the Argument Array . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Creating Functions with Default Arguments . . . . . . . . . . . . . . . . . . 85
Returning a Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Tracing Values in Recursive Functions . . . . . . . . . . . . . . . . . . . . . 90
Variables and Recursive Functions . . . . . . . . . . . . . . . . . . . . . . . 91
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Chapter 7 Utilizing JavaScript Operators . . . . . . . . . . . . . . . . 93
Operator Categories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Mathematical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
viii n Contents

Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Modulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
The Nonexistent Integral Division Operator . . . . . . . . . . . . . . . . . . 95
Increment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Decrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Negation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
String Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Bitwise Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Bitwise AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Bitwise OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Bitwise XOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Bitwise NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Shift Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Left Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Right Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Zero-fill Right Shift. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Assignment Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Relational Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Equality and Inequality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Short-Circuit Logical Operators. . . . . . . . . . . . . . . . . . . . . . . . . . 108
Logical OR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Logical AND. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Logical NOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Testing Equality for Floating-Point Numbers . . . . . . . . . . . . . . . . . 110
More Logical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Conditional Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Comma Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Data Type Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Void Operator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Operator Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Side Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Chapter 8 JavaScript by Example—A Review . . . . . . . . . . . . . 116
Height and Weight Calculator . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
The Task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
The Algorithm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
The Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
convertInput() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
getHeight(sex, age, height) . . . . . . . . . . . . . . . . . . . . . . . . . 126
getWeight(sex, age, weight) . . . . . . . . . . . . . . . . . . . . . . . . . 128
printResult(height, weight, sex, age) . . . . . . . . . . . . . . . . . . . . 128
Global Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Contents n ix

Chapter 9 Events in JavaScript . . . . . . . . . . . . . . . . . . . . . 132


Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Event Handlers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
onLoad and onUnload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
onError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Emulating Events via Methods . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Error Message Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Calling Event Handlers Explicitly. . . . . . . . . . . . . . . . . . . . . . . . . 142
Cancelling Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Chapter 10 Building and Extending Objects . . . . . . . . . . . . . . . 145
Creating Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Constructor Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Defining Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Nested Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Defining Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Creating Objects—An Example . . . . . . . . . . . . . . . . . . . . . . . . 153
Prototype and Object Extensions . . . . . . . . . . . . . . . . . . . . . . . . . 155
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Chapter 11 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
What is an Array? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Some History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Creating Simple Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Referring to an Array’s Elements . . . . . . . . . . . . . . . . . . . . . . . . . 161
Creating Dense Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Array Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Array Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Array Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
chop() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
grep() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
join() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
pop() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
push() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
reverse() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
shift() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
sort() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
splice() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
split(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
unshift() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
The arguments Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Multidimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Creation with a Single Constructor Function . . . . . . . . . . . . . . . . . 185
Creation without a Constructor Function . . . . . . . . . . . . . . . . . . . 186
Associative Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Populating an Associative Array . . . . . . . . . . . . . . . . . . . . . . . . 189
Splitting a String into an Associative Array . . . . . . . . . . . . . . . . . . 190
x n Contents

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Chapter 12 Time and Date in JavaScript . . . . . . . . . . . . . . . . . 192
The Date Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Creating a Date Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Parameters of the Date Constructor. . . . . . . . . . . . . . . . . . . . . . 193
Date Numeric Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Date Method Categories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
get Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
getYear() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
getMonth() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
getDate() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
getDay() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
getHours() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
getMinutes() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
getSeconds(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
getTimezoneOffset() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
getTime() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
The set Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
setYear() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
setMonth(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
setDate(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
setHours() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
setMinutes(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
setSeconds(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
setTime() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
to Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
toGMTString() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
toLocaleString() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
parse Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
parse() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
UTC() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Time-Related Methods of Other Objects . . . . . . . . . . . . . . . . . . . . . 206
setTimeout() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
clearTimeout() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Time and Date Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
A Simple Digital Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Digital Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
getTime() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
leapYear(year) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
getDays(month, year) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
getMonthName(month) . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
setCal() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
drawCal(firstDay, lastDate, date, monthName, year). . . . . . . . . . . . 221
Random Quotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Contents n xi

Chapter 13 JavaScript Math . . . . . . . . . . . . . . . . . . . . . . . 226


Math in JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
The Math Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
LN2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
LN10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
LOG2E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
LOG10E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
SQRT1_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
SQRT2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Math Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Arithmetic Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
abs(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
ceil() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
exp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
floor() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
log() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
max(), min() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
pow() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
random() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
round() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
sqrt() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Trigonometric Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
cos(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
acos() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
sin() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
asin() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
tan() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
atan() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
atan2() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
The Number Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Number Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
MAX_VALUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
MIN_VALUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
NaN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
NEGATIVE_INFINITY . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
POSITIVE_INFINITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Number Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Math-Related Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
parseInt() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
parseFloat(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
eval() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Math Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Creating a Curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
drawBlank(num) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
xii n Contents

drawDot() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
getRadian(deg) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
getSpot(deg) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
get3DigitNum(num) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
printDeg(deg) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
drawLine(deg) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
drawCurve(lastDeg, jump). . . . . . . . . . . . . . . . . . . . . . . . . . 244
Global Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
General Plotting Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
root(a, b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
logab(a, b). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
factorial(a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
startWizard() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
drawBlank(num) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
drawDot(x, y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
replaceSpecialSequence(str). . . . . . . . . . . . . . . . . . . . . . . . . 253
splitFunc(func) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
getInput() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
yVal(xVal) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
makeArray(min, max, dif) . . . . . . . . . . . . . . . . . . . . . . . . . . 256
printUnit(num) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
drawCurve() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Global Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Chapter 14 Handling Strings . . . . . . . . . . . . . . . . . . . . . . . 259
String Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Creating Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
String Length. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
HTML Formatting Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
General String Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
charAt() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
indexOf(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
lastIndexOf() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
substring() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
escape and unescape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Number-to-String Conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Empty String Concatenation . . . . . . . . . . . . . . . . . . . . . . . . . . 265
String Instance Construction. . . . . . . . . . . . . . . . . . . . . . . . . . 266
The toString() Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
String-to-Number Conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . 268
parseInt() and parseFloat() . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Determining if a Value is a Number or Not . . . . . . . . . . . . . . . . . . 269
Evaluating Text Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
String Handling Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Contents n xiii

String Enciphering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270


encipher(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
encode(str, key) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Chapter 15 Browser Objects . . . . . . . . . . . . . . . . . . . . . . . 274
The Object Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Creating Browser Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
The Topmost Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Chapter 16 Utilizing the Status Bar . . . . . . . . . . . . . . . . . . . 278
The Status Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Writing to the Status Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Setting a Default Value for the Status Bar . . . . . . . . . . . . . . . . . . . . 281
Banners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
T-banner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Global Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
stopBanner() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
startBanner() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
showBanner() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Event Handlers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
R-banner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Global Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
stopBanner() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
startBanner() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
clearState() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
getRandom(max) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
getString() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
showBanner() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Event Handlers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
N-banner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
scrollBanner(seed) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Chapter 17 URLs and JavaScript . . . . . . . . . . . . . . . . . . . . . 295
A Crash Course in URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
General URL Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
URL Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Hypertext Transfer Protocol (HTTP) . . . . . . . . . . . . . . . . . . . . 296
File Transfer Protocol (FTP) . . . . . . . . . . . . . . . . . . . . . . . . 296
Gopher Protocol (Gopher) . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Electronic Mail (Mailto) . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Usenet News (News) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
xiv n Contents

Host-Specific File Names (File) . . . . . . . . . . . . . . . . . . . . . . . 297


JavaScript Statements (javascript) . . . . . . . . . . . . . . . . . . . . . 297
Other Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
location Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
location Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
href . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
pathname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
port. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
location Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
reload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Another Location—document.location (document.URL) . . . . . . . . . . . . 312
Search Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Chapter 18 Using the History List . . . . . . . . . . . . . . . . . . . . 318
What is a History List? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
The history Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
History List Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
History List Entry Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
history Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
back . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
forward. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
go. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Security Aspects of the history Object . . . . . . . . . . . . . . . . . . . . . . 321
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Chapter 19 The document Object—Colors, Output, and Properties . . 322
The document Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
The title Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
bgColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Global Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
display(triplet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
drawCell(red, green, blue) . . . . . . . . . . . . . . . . . . . . . . . . . . 328
drawRow(red, blue) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
drawTable(blue) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
drawCube() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
toHex(dec) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
setbgColor(red, green, blue). . . . . . . . . . . . . . . . . . . . . . . . . 332
fade(sred, sgreen, sblue, ered, egreen, eblue, step) . . . . . . . . . . . . 332
Event Handlers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
fgColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Random documents with unrelated
content Scribd suggests to you:
Plate 245

CONVENT OF SANTO TOMÁS SEPULCHRE OF THE INFANTE DON


JUAN, SON OF FERDINAND AND ISABELLA THE MASTERPIECE OF
MICER DOMENICO OF FLORENCE
AVILA
Plate 246

SEPULCHRE OF THE HOLY MARTYRS VICENTE, SABINA AND


CRISTINA
AVILA
Plate 247

INTERIOR OF THE CHAPEL OF SAN BERNARDO BY P. GONZALVO


AVILA
Plate 248

CHURCH OF ST. PETER


AVILA
Plate 249
ENTRANCE TO THE CHURCH OF ST. PETER
AVILA
Plate 250
PAROCHIAL CHURCH OF ST. PETER
AVILA
Plate 251

LONGITUDINAL SECTION AND DETAILS OF THE PARISH CHURCH


OF ST. PETER. AVILA
Plate 252

EXTERIOR OF THE CHURCH OF SAN VICENTE


AVILA
Plate 253

BASILICA OF SAN VICENTE BEFORE ITS RESTORATION


AVILA
Plate 254
BASILICA OF SAN VICENTE BEFORE ITS RESTORATION
AVILA
Plate 255

BASILICA OF SAN VICENTE. NORTH FAÇADE


AVILA
Plate 256
BASILICA OF SAN VICENTE. PRINCIPAL FAÇADE
AVILA
Plate 257

BASILICA OF SAN VICENTE. EASTERN FAÇADE, RESTORED


AVILA
Plate 258

BASILICA OF SAN VICENTE. FAÇADE.


AVILA
Plate 259
BASILICA OF SAN VICENTE. CENTRAL GATE, RESTORED
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookball.com

You might also like