Product Overview

The JavaScript Anthology: 101 Essential Tips, Tricks & Hacks

Index

Symbols

!= inequality operator, (Comparing Two Strings)
!== non-identity operator, (Comparing Two Strings)
. wildcard character, (Creating a Regular Expression)
== equality operator, (Comparing Two Strings)
=== identity operator, (Comparing Two Strings)

A

abs method, Math class, (Making an Object Move Along a Set Path)
absolute positioning
browser differences, (Finding the Position of an Element)
CSS clip property and, (Creating Clip-based Transition Effects)
drop-down lists, (Creating an Auto-complete Text Field)
iframe elements, (Making the Menus Display Over select Elements)
menus, IE, (Making a Drop-down or Fly-out Menu)
news ticker example, (Making a Scrolling News Ticker)
abstraction
direct referencing and, (Writing an Object Oriented Script)
object orientation feature, (What’s so Good about Object Orientation?), (Creating Methods for an Object), (Writing Scripts Using Less Code)
of tasks as functions, (Writing Scripts Using Less Code)
Access Matters web site, (Making Scripts Accessible to Screen Readers)
accessibility, (Using Popup Windows), (Making a Folder Tree or Expanding Menu)
(see also keyboard accessibility)
(see also screen readers)
attempted definition of, (Is JavaScript Inaccessible?)
automatically initiated scripts, (Making Scripts Accessible to Screen Readers)
current sub-branch display, (Opening the Current Sub-branch Automatically)
device-independent event handlers, (Using Device-independent Event Handlers)
frames and, (Communicating Between Frames)
hiding menu elements, (Making a Drop-down or Fly-out Menu)
keyboard and mouse, (Making Scripts Accessible to the Keyboard as well as the Mouse), (Making Scripts Accessible to the Keyboard as well as the Mouse)
keyboard navigation and, (Making a Folder Tree or Expanding Menu)
limitations of menus, (Making a Drop-down or Fly-out Menu)
non-programming aspects, (Is JavaScript Inaccessible?)
popups and, (Using Popup Windows)
screen readers and, (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
slider controls, (Making a DHTML Slider Control Accessible to the Keyboard)
tooltip display and, (Making title Attribute Tooltips Display on Focus)
ActionScript, (Communicating Between JavaScript and Flash)
activate event, IE, (Using Device-independent Event Handlers), (Making Scripts Accessible to the Keyboard as well as the Mouse)
:active pseudo-class, (Making a Drop-down or Fly-out Menu)
ActiveX objects, (JavaScript’s Limitations), (Retrieving Data Using XMLHttpRequest)
(see also Flash)
(see also XMLHttpRequest object)
Flash detection and, (Detecting whether Flash is Installed in a Browser)
Flash version detection, (Detecting whether Flash is Installed in a Browser)
FSCommand support and, (Communicating Between JavaScript and Flash)
memory leaks and, (Avoiding Memory Leaks)
actuate event, (Using Device-independent Event Handlers)
addDomFunction function, (Making Scripts Run Before the Load Event)
addEventListener method, (Getting Multiple Scripts to Work on the Same Page), (Handling Events), (Handling Events), (Making Scripts Run Before the Load Event)
addLoadListener function, (Getting Multiple Scripts to Work on the Same Page)
accessible tooltip example, (Making title Attribute Tooltips Display on Focus)
adding a new style sheet, (Creating a New Style Sheet)
auto-complete text fields, (Creating an Auto-complete Text Field)
clip–based transitions, (Creating Clip-based Transition Effects)
custom dialog example, (Creating Custom Dialogs (Such as Popup Forms))
drag-and-drop effects, (Implementing Drag-and-drop Behavior)
image swapping, (Swapping One Image for Another)
soccer ball animation, (Making an Object Move Along a Set Path)
tooltip example, (Displaying a Tooltip when you Mouse Over an Element)
WYSIWYG editor, (Creating Editable Elements)
addRule method, IE, (Adding New Style Sheet Rules), (Creating a New Style Sheet)
AJAX (Asynchronous JavaScript and XML), (Retrieving Data Using XMLHttpRequest)
frameworks, (Retrieving Data Using XMLHttpRequest)
keyboard accessibility, (Making Scripts Accessible to the Keyboard as well as the Mouse)
screen readers and, (Making Scripts Accessible to Screen Readers)
Ajile module, (Implementing Namespaces)
alert dialog
error analysis and, (Debugging a Script)
error messages, (Printing Inline Error Messages when Validating a Form), (Making Scripts Accessible to Screen Readers)
page alternative, (Debugging a Script)
screen readers and, (Making Scripts Accessible to Screen Readers)
all property, document object
accessible tooltip example, (Making title Attribute Tooltips Display on Focus)
browser detection and, (Identifying a Particular Browser)
cleaning functions using, (Avoiding Memory Leaks)
elements by attribute value, (Getting all Elements with a Particular Attribute Value)
alternate style sheets, (Making a Style Sheet Switcher), (Making a Style Sheet Switcher)
animated GIFs, (Making a Progress Indicator)
animation
achieving smoothness, (Making Animation Less Jerky), (Making Animation Less Jerky)
applicable Flash techniques, (Making an Object Move Along a Set Path)
automated slideshows, (Making a Slideshow of Several Images)
drawing times, (Making Animation Less Jerky)
frame rate changes, (Making Animation Less Jerky)
optimization excluding, (Making Scripts Run Faster)
realism in, (Making an Object Move Along a Set Path)
scrolling news ticker, (Making a Scrolling News Ticker)
soccer ball example, (Making an Object Move Along a Set Path)
straight line movement, (Making an Object Move Along a Set Path)
transition effects, (Creating Clip-based Transition Effects)
anonymous functions
creating, (Using Braces and Semicolons (Consistent Coding Practice))
DOM method loading, (Making Scripts Run Before the Load Event)
event handlers and, (Handling Events)
inline declaration, (Using setTimeout and setInterval)
setInterval alternative, (Making an Object Move Along a Set Path)
W3C event model and, (Handling Events)
antialiasing, (Making Animation Less Jerky)
appendChild method, (Creating Elements and Text Nodes), (Changing the Type of an Element)
arguments collection, (Making Scripts Run Faster)
arithmetic operators, (Doing Math with JavaScript)
(see also Math class)
array-literals, (Using Array-literals)
arrays, (Working with Arrays), (Working with Arrays)
adding or removing members, (Adding or Removing Members from an Array)
alternate style sheets, (Making a Style Sheet Switcher)
clock display, (Making an Image-based Clock that Updates in Real Time)
code efficiency and, (Writing Scripts Using Less Code)
collections similar to, (Accessing Elements)
date and time comparisons, (Formatting the Difference Between Dates)
Date object methods and, (Getting the Date and Time)
drop-down menus and, (Creating an Auto-complete Text Field)
example, (Creating an Array of Arrays)
forms collection as, (Reading and Writing the Data in a Text Field)
image preloading, (Preloading Images)
inverse sorting, (Opening the Current Sub-branch Automatically)
multi-dimensional arrays, (Creating an Array of Arrays), (Sorting a Multi-dimensional Array)
radio button access, (Reading and Setting the State of a Radio Button)
select box access, (Reading and Setting the Value of a Select Box)
slideshow automation, (Making a Slideshow of Several Images)
sorting, (Sorting an Array into Alphabetical or Numeric Order), (Sorting an Array Randomly)
strings from, (Turning an Array into a String)
writing debugging data to, (Debugging a Script)
arrow keys
accessible drag-and-drop functionality, (Making Scripts Accessible to the Keyboard as well as the Mouse)
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
drop-down menus and, (Creating an Auto-complete Text Field)
key codes for, (Making a DHTML Menu Usable via the Keyboard)
keyboard accessible menus and, (Making Scripts Accessible to the Keyboard), (Making a DHTML Menu Accessible to the Keyboard), (Making a DHTML Menu Usable via the Keyboard)
arrow submenu indicators, (Adding Arrows to Indicate the Presence of a Submenu)
assistive technologies, (JavaScript Best Practices), (Making Scripts Accessible to Screen Readers)
(see also screen readers)
associative arrays
Flash version detection, (Detecting whether Flash is Installed in a Browser)
forms collections as, (Reading and Writing the Data in a Text Field)
frames collections as, (Communicating Between Frames)
asterisks
implying all elements, (Making title Attribute Tooltips Display on Focus)
in regular expressions, (Creating a Regular Expression)
tag name wildcards, (Getting all Elements with a Particular Attribute Value)
asynchronous processing, (Retrieving Data Using XMLHttpRequest)
(see also AJAX)
load requests, (Preloading Images)
open method requests, (Retrieving Data Using XMLHttpRequest)
updates and accessibility, (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
attachEvent method, IE
addEventListener and, (Getting Multiple Scripts to Work on the Same Page), (Handling Events), (Handling Events)
attachEventListener and, (Making a Drop-down or Fly-out Menu)
checking for, (Handling Events)
circular references and, (Avoiding Memory Leaks)
event object and, (Making a Drop-down or Fly-out Menu)
load event and, (Making Scripts Run Before the Load Event)
attachEventListener function, (Handling Events), (Handling Events), (Handling Events)
accessible rollover example, (Making Scripts Accessible to the Keyboard as well as the Mouse)
accessible tooltip example, (Making title Attribute Tooltips Display on Focus)
circular reference cleaning, (Avoiding Memory Leaks)
click events and, (Making a Folder Tree or Expanding Menu)
drag-and-drop effects, (Implementing Drag-and-drop Behavior)
drop-down menu example, (Making a Drop-down or Fly-out Menu)
screen reader identification, (Making Scripts Accessible to Screen Readers)
tooltip example, (Displaying a Tooltip when you Mouse Over an Element)
attributes
accessibility under DOM 0, (Reading and Writing the Attributes of an Element)
copying, (Changing the Type of an Element)
reading and writing values, (Reading and Writing the Attributes of an Element)
reading unverified, (Reading and Writing the Attributes of an Element)
retrieving elements with given, (Getting all Elements with a Particular Attribute Value)
auto-complete text fields, (Creating an Auto-complete Text Field)
automatic radix detection, (Converting a String to a Number)
automatically initiated scripts, (Making Scripts Accessible to Screen Readers)

B

back button problems, (Retrieving Data without Using XMLHttpRequest)
back-references, (Searching and Replacing Text using a Regular Expression)
background color slider, (Making a Slider Control)
background images, (Preloading Images), (Adding Arrows to Indicate the Presence of a Submenu)
background masking, (Creating Custom Dialogs (Such as Popup Forms))
background-color property, (Creating Custom Dialogs (Such as Popup Forms))
backslash escaping, (Including a Special Character in a String)
backtraces, (Debugging a Script)
backwards navigation and accessibility, (Making a DHTML Menu Accessible to the Keyboard)
base of numbers, (Converting a String to a Number)
baseOffset and extentOffset properties, (Controlling Text Selections)
behavior layer, (Building Web Applications with JavaScript)
behavioral pairing and accessibility, (Making Scripts Accessible to the Keyboard as well as the Mouse)
benchmarking tests, (Making Scripts Run Faster), (Making Scripts Run Faster)
best practices, (JavaScript Best Practices), (Making Scripts Accessible to Screen Readers)
block elements, (Making a Scrolling News Ticker)
blur event listeners, (Creating an Auto-complete Text Field)
accessible rollover example, (Making Scripts Accessible to the Keyboard as well as the Mouse)
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
blur events, (Making a DHTML Menu Accessible to the Keyboard), (Creating an Auto-complete Text Field)
blur method
accessibility problems, (Making Scripts Accessible to the Keyboard as well as the Mouse)
window object, (Using Popup Windows)
body element loading check, (Making Scripts Run Before the Load Event)
bold and italic text creation, (Creating Editable Elements)
Boolean results, switch statements, (Making Scripts Run Faster)
box model bugs, (Finding the Size of an Element)
box model calculations, (Detecting Quirks Mode and Standards Mode)
braces, (Using Braces and Semicolons (Consistent Coding Practice))
object literals use of, (Indexing an Array with Strings Instead of Numbers)
typeof operator, problems with, (Identifying Support for a Particular Feature)
break statements, (Checking for Unselected Radio Buttons), (Making Scripts Run Faster), (Making Scripts Run Faster)
browser detection, (Working with Windows and Frames), (Identifying a Particular Browser)
(see also feature detection)
continuing need for, (Detecting Browser Differences)
drag-and-drop effects, (Implementing Drag-and-drop Behavior)
drop-down menu examples, (Making a Drop-down or Fly-out Menu), (Making the Menus Display Over select Elements), (Creating an Auto-complete Text Field)
feature detection alternative, (Working with Windows and Frames), (Identifying Support for a Particular Feature)
identifyBrowser function, (Identifying a Particular Browser), (Adding New Style Sheet Rules), (Creating a New Style Sheet), (Creating an Auto-complete Text Field)
screen readers, (Making a Folder Tree or Expanding Menu), (Making Scripts Accessible to Screen Readers)
when to use, (Identifying a Particular Browser)
browser support
addEventListener method, (Getting Multiple Scripts to Work on the Same Page)
advantages of feature detection, (Identifying Support for a Particular Feature)
callback functions, (Searching and Replacing Text using a Regular Expression)
child selectors, (Adding Arrows to Indicate the Presence of a Submenu)
currentTarget property, (Handling Events)
designMode property, (Creating Editable Elements)
event listeners, (Handling Events)
Flash, (Detecting whether Flash is Installed in a Browser), (Communicating Between JavaScript and Flash)
JavaScript, (JavaScript’s Limitations)
opacity property, (Making an Image Fade in or out), (Creating Custom Dialogs (Such as Popup Forms))
ranges, (Controlling Text Selections), (Creating an Auto-complete Text Field)
scripting support by screen readers, (Is JavaScript Inaccessible?), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
scrolling, (Getting the Scrolling Position)
style sheet manipulation, (Reading and Modifying an Existing Style Sheet)
XMLHttpRequest object, (Identifying Support for a Particular Feature), (Retrieving Data Using XMLHttpRequest), (Retrieving Data without Using XMLHttpRequest)
browser window (see viewport size)
browser-based screen readers (see screen readers)
browser-specific optimizations, (Making Scripts Run Faster), (Making Scripts Run Faster)
browsers, (Searching and Replacing Text using a Regular Expression), (Adding or Removing Members from an Array), (Reading and Writing the Attributes of an Element), (Retrieving the Computed Style of an Element), (Adding New Style Sheet Rules), (Implementing Drag-and-drop Behavior), (Making a Drop-down or Fly-out Menu), (Communicating Between JavaScript and Flash)
(see also browser support)
(see also cross-browser scripting)
(see also Firefox)
(see also Internet Explorer)
(see also Konqueror)
(see also Netscape)
(see also Opera)
(see also Safari)
absolute within relative positioning, (Making a Scrolling News Ticker)
animation speed and, (Making Animation Less Jerky)
argument fetching benchmarking, (Making Scripts Run Faster)
attribute handling by, (Reading and Writing the Attributes of an Element), (Getting all Elements with a Particular Attribute Value)
box model bugs, (Finding the Size of an Element)
computed style retrieval, (Retrieving the Computed Style of an Element)
cookie restrictions, (Circumventing Browser Restrictions on the Number of Cookies you can Use)
CSS 2 property interfaces, (Changing the Style of a Single Element)
CSS property value separators, (Creating Clip-based Transition Effects)
Date object display, (Getting the Date and Time)
DHTML Accessibility project and, (Making Scripts Accessible to the Keyboard)
editing engines, (Creating Editable Elements)
element positioning differences, (Finding the Position of an Element)
element size determination, (Finding the Size of an Element)
elements, hiding optional, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
error reporting, built-in, (Debugging a Script)
event models, (Opening Off-site Links in a New Window), (Handling Events), (Handling Events)
external debuggers and, (Debugging a Script)
focus event bubbling, (Making Scripts Accessible to the Keyboard as well as the Mouse)
getSelection implementation, (Controlling Text Selections)
grouped selector treatment, (Reading and Modifying an Existing Style Sheet)
keyboard accessible menus, (Making a DHTML Menu Usable via the Keyboard)
keyboard navigation modes, (Making a DHTML Menu Accessible to the Keyboard)
popup resizing, (Using Popup Windows)
references to stored lengths, (Making Scripts Run Faster)
rendering modes, (Getting the Scrolling Position)
repeat rates, (Making a DHTML Slider Control Accessible to the Keyboard)
scrolling behavior, (Getting the Scrolling Position), (Making a DHTML Menu Usable via the Keyboard)
sorting behaviors, (Sorting a Multi-dimensional Array)
speaking browsers, (Making a Folder Tree or Expanding Menu)
style sheet switchers, built-in, (Making a Style Sheet Switcher)
substring detection benchmarking, (Making Scripts Run Faster)
tabindex attribute and, (Making Scripts Accessible to the Keyboard)
title attribute and, (Making title Attribute Tooltips Display on Focus)
viewport size calculation, (Making Sure the Menus Stay Inside the Window)
voice capabilities, (Making Scripts Accessible to Screen Readers)
bubble phase, (Handling Events)
button element
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
keyboard accessibility and, (Making Scripts Accessible to the Keyboard)
buttons
custom dialog example, (Creating Custom Dialogs (Such as Popup Forms))
disabling and accessibility, (Making Scripts Accessible to the Keyboard as well as the Mouse)
WYSIWYG editor interface, (Creating Editable Elements), (Controlling Text Selections)

C

caching, (Preloading Images)
(see also preloading images)
icons, (Indicating Expanded Branches in a Menu)
staggered loading alternative, (Making a Slideshow of Several Images)
XMLHttpRequest and, (Retrieving Data Using XMLHttpRequest)
calculation, minimizing, (Making Scripts Run Faster)
call method, Flash/JavaScript Integration Kit, (Communicating Between JavaScript and Flash)
callback functions, (Searching and Replacing Text using a Regular Expression)
camel casing, (Changing the Style of a Single Element)
cancelBubble property, (Handling Events)
capture phase, (Handling Events)
caret, in regular expressions, (Creating a Regular Expression)
caret, in text selections, (Controlling Text Selections)
carriage return character, (Including a Special Character in a String)
Cascading Style Sheets (see CSS)
case changes, (Transforming the Character Case of a String), (Reading and Modifying an Existing Style Sheet)
camel casing, (Changing the Style of a Single Element)
case-insensitive flag, (Creating a Regular Expression)
ceil method, Math object, (Doing Math with JavaScript), (Rounding a Number to x Decimal Places), (Making a Progress Indicator)
chaining event handlers, (Getting Multiple Scripts to Work on the Same Page)
charAt method, (Making an Image-based Clock that Updates in Real Time)
checkboxes, (Reading and Setting the State of a Checkbox)
child selectors, CSS, (Adding Arrows to Indicate the Presence of a Submenu)
childNodes property, (Accessing Elements), (Removing an Element or Text Node)
“chromeless” windows, (Working with Windows and Frames), (Using Popup Windows)
circular references, (Avoiding Memory Leaks), (Avoiding Memory Leaks)
class attribute
access methods, (Reading and Writing the Attributes of an Element), (Getting all Elements with a Particular Attribute Value)
showing and hiding fields, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
storing validation types, (Validating a Form with an Unknown Number of Fields)
class inheritance, (What’s so Good about Object Orientation?), (Object Based Code vs Object Oriented Code), (Modelling Inheritance)
classes, multiple CSS, (Adding and Removing Multiple Classes to/from an Element)
className property, (Accessing Elements), (Adding and Removing Multiple Classes to/from an Element)
cleaning functions, (Avoiding Memory Leaks)
clearInterval function, (Using setTimeout and setInterval), (Making an Object Move Along a Set Path)
clearMenus function, (Adding Timers so the Menus Don’t Open and Close so Abruptly), (Making the Menus Display Over select Elements)
click event
device-independent event handling and, (Using Device-independent Event Handlers)
transition effects, (Creating Clip-based Transition Effects)
client-side language limitations, (JavaScript’s Limitations)
clientWidth and clientHeight properties, (Finding the Size of an Element)
clientX and clientY properties, IE, (Detecting the Position of the Mouse Cursor)
clip property, CSS, (Creating Clip-based Transition Effects)
clip-based transitions, (Creating Clip-based Transition Effects)
clocks, image-based, (Making an Image-based Clock that Updates in Real Time)
clone class, (Reordering a List Using Drag-and-drop Functionality)
cloneNode method, (Changing the Type of an Element)
cloning objects by prototyping, (Object Based Code vs Object Oriented Code), (Modelling Inheritance)
close method, window object, (Using Popup Windows)
closed property, checking, (Using Popup Windows), (Opening Off-site Links in a New Window)
closures, (Making an Image Fade in or out), (Handling Events), (Adding Timers so the Menus Don’t Open and Close so Abruptly), (Understanding Scope)
code, (Making Scripts Run Faster)
(see also readability)
avoiding repetition, (Writing Scripts Using Less Code)
compressing in production scripts, (Optimizing Scripts for the Web), (Optimizing Scripts for the Web)
hiding, (Adding a Script to a Page), (Hiding JavaScript Source Code)
inserting custom, (Controlling Text Selections)
obfuscation, (Hiding JavaScript Source Code), (Optimizing Scripts for the Web)
shortening for efficiency, (Writing Scripts Using Less Code), (Writing Scripts Using Less Code)
code efficiency (see optimization)
collapse method, (Controlling Text Selections)
collections
checking loading, (Making Scripts Run Before the Load Event)
DOM 0, (Accessing Elements)
from getElementsByTagName, (Accessing Elements)
color slider control, (Making a Slider Control)
color value normalization, (Retrieving the Computed Style of an Element)
comments
code efficiency and, (Writing Scripts Using Less Code), (Optimizing Scripts for the Web)
hiding code with HTML, (Adding a Script to a Page)
removing URL protocols with, (Optimizing Scripts for the Web)
source code obfuscation and, (Hiding JavaScript Source Code)
communication interfaces (see data transmission)
compare function, (Sorting a Multi-dimensional Array), (Opening the Current Sub-branch Automatically)
compatMode property, document object, (Detecting Quirks Mode and Standards Mode)
compressing script code, (Hiding JavaScript Source Code)
computed styles, (Retrieving the Computed Style of an Element)
conditions, compacting, (Writing Scripts Using Less Code)
Connect Outloud screen reader, (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
consistent coding practice, (JavaScript Best Practices)
constants, Math object, (Doing Math with JavaScript)
constructors, (Writing an Object Oriented Script), (Creating Methods for an Object), (Modelling Inheritance)
contains methods
custom, for accessible drop-downs, (Making a DHTML Menu Accessible to the Keyboard)
event target checking, (Making a DHTML Menu Usable via the Keyboard)
proprietary IE, (Making a Drop-down or Fly-out Menu), (Making the Menus Display Over select Elements)
content (see dynamic content) (see separation of content...)
Content-Type headers, (Retrieving Data Using XMLHttpRequest)
continue statements, (Making Scripts Run Faster)
control characters, (Including a Special Character in a String)
cookie property, document object, (Writing Cookies)
cookies, (Working with Cookies), (Working with Cookies)
maintaining alternate style sheet states, (Making a Style Sheet Switcher)
restricting access, (Making a Cookie Accessible Only from a Specific Domain or Path)
setting expiry values, (Setting a Cookie to Expire at a Specific Date and Time)
uses, (Working with Cookies)
Coordinated Universal Time (UTC), (Getting the Date and Time)
createDialog function, (Creating Custom Dialogs (Such as Popup Forms))
createElement method, (Creating Elements and Text Nodes)
createElementNS method, (Creating Elements and Text Nodes)
createRange method, (Controlling Text Selections)
createTextNode method, (Creating Elements and Text Nodes)
cross-browser scripting
accessibility, (Making a DHTML Slider Control Accessible to the Keyboard)
computed style retrieval, (Retrieving the Computed Style of an Element)
drag-and-drop functionality, (Implementing Drag-and-drop Behavior)
event listeners and, (Handling Events), (Implementing Drag-and-drop Behavior)
mouse cursor position, (Detecting the Position of the Mouse Cursor), (Displaying a Tooltip when you Mouse Over an Element)
style sheet modification, (Reading and Modifying an Existing Style Sheet)
cross-frame scripting, (Communicating Between Frames)
CSS, (Using JavaScript with CSS), (Using JavaScript with CSS)
(see also style sheets)
controlling element display, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
disabling optional elements, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
opacity property in CSS 3, (Making an Image Fade in or out)
opacity setting, (Making an Image Fade in or out)
pseudo-classes, (Swapping One Image for Another), (Making a Drop-down or Fly-out Menu), (Making Scripts Accessible to the Keyboard as well as the Mouse), (Making title Attribute Tooltips Display on Focus)
System Colors, CSS 2, (Making title Attribute Tooltips Display on Focus)
tag uppercasing by IE, (Reading and Modifying an Existing Style Sheet)
target property, CSS 3, (Opening Off-site Links in a New Window)
using multiple classes, (Adding and Removing Multiple Classes to/from an Element)
CSS1Compat value, (Detecting Quirks Mode and Standards Mode)
cssFloat property, (Changing the Style of a Single Element)
currency values, (Formatting Currency Values)
current branch opening, (Opening the Current Sub-branch Automatically)
currentStyle property, IE, (Retrieving the Computed Style of an Element)
currentTarget property, (Handling Events)
cursors (see mouse cursor)
curtain transitions, (Creating Clip-based Transition Effects)
custom code insertion, (Controlling Text Selections)
custom dialogs, (Creating Custom Dialogs (Such as Popup Forms))

D

data transmission
requesting data from servers, (Retrieving Data Using XMLHttpRequest)
without XMLHttpRequest, (Retrieving Data without Using XMLHttpRequest)
XMLHttpRequest and, (Retrieving Data Using XMLHttpRequest), (Retrieving Data Using XMLHttpRequest)
data types, (Getting Multiple Scripts to Work on the Same Page)
arrays, (Creating an Array of Arrays)
comparing unequal, (Comparing Two Strings)
object literal properties, (Indexing an Array with Strings Instead of Numbers)
date format, cookie expiry, (Setting a Cookie to Expire at a Specific Date and Time)
Date object, (Working with Dates and Times), (Getting the Date and Time)
calculating the day of the week, (Comparing Two Dates)
compatible date formats, (Comparing Two Dates)
date and time comparisons, (Getting the Date and Time), (Comparing Two Dates), (Formatting the Difference Between Dates)
formatting by browsers, (Getting the Date and Time)
formatting difference results, (Formatting the Difference Between Dates)
formatting into sentences, (Formatting a Date into a Sentence), (Formatting the Difference Between Dates)
formatting methods, (Getting the Date and Time)
ISO date formats, (Formatting a Date into a Sentence)
limits on values, (Comparing Two Dates)
meridian calculation, (Formatting the Time into a 12- or 24-hour Clock)
Number function and, (Converting a String to a Number)
string conversion, (Converting a Number to a String)
time formatting, (Formatting the Time into a 12- or 24-hour Clock)
day of the week calculations, (Comparing Two Dates)
debugging scripts, (Debugging a Script), (Strict Warnings)
deceleration in animation, (Making an Object Move Along a Set Path)
decorations, popup windows, (Using Popup Windows)
default case, switch statements, (Making Scripts Run Faster)
deleteContents method, (Controlling Text Selections)
deleteRule method, (Deleting a Rule from a Style Sheet)
delimiters, (Splitting a String into Substrings), (Creating a Regular Expression)
designMode property, (Creating Editable Elements)
detachEvent method, (Handling Events), (Avoiding Memory Leaks)
detachEventListener function, (Handling Events), (Implementing Drag-and-drop Behavior), (Making Scripts Accessible to Screen Readers)
DHTML, (Basic Dynamic HTML), (Basic Dynamic HTML)
DHTML Accessibility project, (Making Scripts Accessible to the Keyboard)
DHTML controls
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
scrolling news ticker, (Making a Scrolling News Ticker)
slider controls, (Making a Slider Control)
DHTML menus, (DHTML Menus and Navigation), (DHTML Menus and Navigation)
drop-down menu example, (Making a Drop-down or Fly-out Menu), (Making the Menus Display Over select Elements)
expanding menus, (Making a Folder Tree or Expanding Menu), (Allowing Only One Menu Branch to Be Open at Any Time)
keyboard accessibility, (Making Scripts Accessible to the Keyboard), (Making a DHTML Menu Accessible to the Keyboard)
tabindex attribute and, (Making Scripts Accessible to the Keyboard)
usability, (Making a DHTML Menu Usable via the Keyboard)
dialogs, custom in-page, (Creating Custom Dialogs (Such as Popup Forms))
digits (see numeric data)
directory paths, cookie, (Making a Cookie Accessible Only from a Specific Domain or Path)
disability and accessibility, (Is JavaScript Inaccessible?), (Is JavaScript Inaccessible?)
disabled property, style sheets, (Making a Style Sheet Switcher), (Making a Style Sheet Switcher that Handles Multiple Media Types)
disabling optional elements, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
display property
IE 5 and 6, (Making a Drop-down or Fly-out Menu)
iframes, (Retrieving Data without Using XMLHttpRequest)
screen reader identification, (Making a Folder Tree or Expanding Menu)
visibility and, (Displaying a Tooltip when you Mouse Over an Element), (Making a Folder Tree or Expanding Menu)
displayReset function, (Making a Folder Tree or Expanding Menu), (Opening the Current Sub-branch Automatically)
displayTime function, (Making an Image-based Clock that Updates in Real Time)
div elements
accessible tooltip example, (Making title Attribute Tooltips Display on Focus)
changing a paragraph into, (Changing the Type of an Element)
nested divs, (Making a Slider Control)
DOCTYPE declarations, (Detecting Quirks Mode and Standards Mode)
document object
accessing forms from, (Reading and Writing the Data in a Text Field)
Opera load event listeners, (Getting Multiple Scripts to Work on the Same Page)
Document Object Model (see DOM)
Dojo JavaScript framework, (Retrieving Data Using XMLHttpRequest)
dollar sign, regular expressions, (Creating a Regular Expression), (Searching and Replacing Text using a Regular Expression)
Dolphin Hal screen reader, (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
DOM (Document Object Model), (Separating Content from Behavior (Unobtrusive Scripting)), (Navigating the Document Object Model), (Navigating the Document Object Model)
cross-frame scripting, (Communicating Between Frames)
DHTML use, (Basic Dynamic HTML)
element sizing properties, (Finding the Size of an Element)
methods, document loading and, (Making Scripts Run Before the Load Event)
nodes and memory leaks, (Avoiding Memory Leaks)
W3C definition, (Navigating the Document Object Model)
DOM 0 functionality
attributes as properties, (Reading and Writing the Attributes of an Element)
cleaning functions, (Avoiding Memory Leaks)
collections, (Accessing Elements)
event handlers, (Handling Events), (Avoiding Memory Leaks)
DOMActivate event, (Using Device-independent Event Handlers)
DOMFocusIn event, (Making Scripts Accessible to the Keyboard as well as the Mouse)
dot property method, (Reading and Writing the Attributes of an Element)
double slash notation, (Optimizing Scripts for the Web)
download times, (Writing Scripts Using Less Code)
drag-and-drop effects, (Implementing Drag-and-drop Behavior)
accessible slider control, (Making Scripts Accessible to the Keyboard as well as the Mouse)
example interface, (Implementing Drag-and-drop Behavior)
hot zone, (Implementing Drag-and-drop Behavior)
keyboard accessibility, (Making Scripts Accessible to the Keyboard as well as the Mouse)
reordering a list, (Reordering a List Using Drag-and-drop Functionality), (Making Scripts Accessible to the Keyboard as well as the Mouse)
drop sheets, (Creating Custom Dialogs (Such as Popup Forms))
drop-down menu example, (Making a Drop-down or Fly-out Menu), (Making the Menus Display Over select Elements)
adding timers, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
constraining within windows, (Making Sure the Menus Stay Inside the Window)
keyboard accessible version, (Making a DHTML Menu Accessible to the Keyboard), (Making a DHTML Menu Usable via the Keyboard)
select elements, (Making the Menus Display Over select Elements)
submenu arrows, (Adding Arrows to Indicate the Presence of a Submenu)
drop-down menus
auto-complete text fields, (Creating an Auto-complete Text Field)
horizontal navigation and accessibility, (Making a DHTML Menu Usable via the Keyboard)
keyboard accessibility, (Making a DHTML Menu Accessible to the Keyboard)
positioning, (Creating an Auto-complete Text Field)
dynamic content and screen readers, (Making Scripts Accessible to the Keyboard), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
Dynamic HTML (see DHTML)
dynamic variables, (Making Scripts Run Faster)

E

ECMA–262 standard, (JavaScript Defined), (Communicating Between JavaScript and Flash)
editors
browser engines for, (Creating Editable Elements)
code optimization in, (Optimizing Scripts for the Web)
example WYSIWYG, (Creating Editable Elements)
fully-functional, (Creating Editable Elements)
efficient scripts (see optimization)
element nodes, checking for, (Accessing Elements)
elements
accessing via the DOM, (Accessing Elements)
adding and removing multiple classes, (Adding and Removing Multiple Classes to/from an Element)
changing types of, (Changing the Type of an Element)
creating editable, (Creating Editable Elements)
creating, using the DOM, (Creating Elements and Text Nodes)
default action cancellation, (Handling Events)
dimensions, when rendered, (Finding the Size of an Element)
focus acceptance, (Making Scripts Accessible to the Keyboard)
insertion options, (Creating Elements and Text Nodes)
position of, when rendered, (Finding the Position of an Element), (Making Sure the Menus Stay Inside the Window)
prototype-based method creation, (Creating Methods for an Object)
removing or relocating, (Removing an Element or Text Node)
repositioning, (Making Sure the Menus Stay Inside the Window)
retrieving by attribute value, (Getting all Elements with a Particular Attribute Value)
selecting all, (Making title Attribute Tooltips Display on Focus)
elements collection, (Reading and Writing the Data in a Text Field), (Validating a Form with an Unknown Number of Fields)
em elements, (Making Scripts Accessible to Screen Readers)
email address validation, (Testing whether a String is a Valid Email Address), (Validating an Email Address Field)
emoticons, (Controlling Text Selections)
encapsulation, (What’s so Good about Object Orientation?), (Writing an Object Oriented Script), (Creating Methods for an Object)
encryption, source code, (Hiding JavaScript Source Code)
equality operator, (Comparing Two Strings)
equivalence and accessibility, (Making Scripts Accessible to the Keyboard)
error objects, (Debugging a Script)
error reporting
built-in, (Debugging a Script)
external debuggers, (Debugging a Script)
inline error messages, (Printing Inline Error Messages when Validating a Form)
page or window reporting, (Debugging a Script)
screen reader form validation, (Making Scripts Accessible to Screen Readers)
using alerts, (Debugging a Script)
using try/catch blocks, (Debugging a Script)
escape characters
formatting alerts, (Debugging a Script)
regular expressions, (Creating a Regular Expression)
special characters in strings, (Including a Special Character in a String)
whitespace removal and, (Optimizing Scripts for the Web)
escape function, (Encoding a URL)
cookies, (Writing Cookies)
sub-cookie separators, (Circumventing Browser Restrictions on the Number of Cookies you can Use)
eval function, (Making Scripts Run Faster)
event bubbling, (Handling Events)
addEventListener method and, (Getting Multiple Scripts to Work on the Same Page)
drop-down menu example, (Making a Drop-down or Fly-out Menu), (Adding Timers so the Menus Don’t Open and Close so Abruptly)
expanding menu example, (Making a Folder Tree or Expanding Menu)
focus events, (Making Scripts Accessible to the Keyboard as well as the Mouse)
menu repositioning and, (Making Sure the Menus Stay Inside the Window)
event handlers
attribute, code in, (Separating Content from Behavior (Unobtrusive Scripting))
behavioral pairing, (Making Scripts Accessible to the Keyboard as well as the Mouse)
device-independence and accessibility, (Using Device-independent Event Handlers)
multiple scripts and, (Getting Multiple Scripts to Work on the Same Page)
nonexistent elements, (Separating Content from Behavior (Unobtrusive Scripting))
XMLHttpRequest object, (Retrieving Data Using XMLHttpRequest)
event handling approaches, (Handling Events), (Handling Events)
DOM 0 event handlers, (Handling Events)
W3C event listeners, (Handling Events)
event listeners
checking object creation, (Displaying a Tooltip when you Mouse Over an Element)
cross-browser, (Implementing Drag-and-drop Behavior)
event handlers and, (Getting Multiple Scripts to Work on the Same Page)
location choice, (Implementing Drag-and-drop Behavior)
removing, (Handling Events)
event model, W3C, (Handling Events)
event models, browser, (Opening Off-site Links in a New Window), (Handling Events), (Handling Events)
event propagation, (Handling Events)
event target checking, (Making a DHTML Menu Usable via the Keyboard)
event target property, (Opening Off-site Links in a New Window)
eventPhase property, (Making Sure the Menus Stay Inside the Window)
events
keyboard accessibility and, (Making Scripts Accessible to the Keyboard)
speaking browsers, (Making a Folder Tree or Expanding Menu)
execCommand method, (Creating Editable Elements)
executeIframeRPC function, (Retrieving Data without Using XMLHttpRequest)
execution order, operators, (Doing Math with JavaScript)
execution, stopping, (Using setTimeout and setInterval)
expanding menus, (Making a Folder Tree or Expanding Menu)
folder tree menus and, (Making a Folder Tree or Expanding Menu)
indicating expanded branches, (Indicating Expanded Branches in a Menu)
restricting open branches, (Allowing Only One Menu Branch to Be Open at Any Time)
Expires header, XMLHttpRequest, (Retrieving Data Using XMLHttpRequest)
expiry dates and times, cookies, (Setting a Cookie to Expire at a Specific Date and Time)
expressions
applying CSS rules in IE, (Adding Arrows to Indicate the Presence of a Submenu)
direct evaluation of, (Writing Scripts Using Less Code)
external debuggers, (Debugging a Script)
external dependencies, loading, (Making Scripts Run Before the Load Event)

F

fading effects, (Making an Image Fade in or out)
cross and straight fades, (Making an Image Fade in or out)
feature detection, (Working with Windows and Frames), (Identifying Support for a Particular Feature), (Making a Drop-down or Fly-out Menu)
(see also browser detection)
ActiveX objects, (Retrieving Data Using XMLHttpRequest)
browser detection alternative, (Identifying a Particular Browser)
cursor position detection, (Detecting the Position of the Mouse Cursor)
omission of typeof operator, (Identifying Support for a Particular Feature)
opacity property support, (Making an Image Fade in or out)
scroll position example, (Getting the Scrolling Position)
style sheet creation, (Creating a New Style Sheet)
viewport size example, (Getting the Viewport Size (the Available Space inside the Window))
file extensions, (Preloading Images), (Making a Slideshow of Several Images)
findHere function, (Opening the Current Sub-branch Automatically)
Firefox browser, (Identifying a Particular Browser)
(see also Mozilla browsers)
CSS 2 System Colors and, (Making title Attribute Tooltips Display on Focus)
errors console, (Debugging a Script)
opacity support, (Making an Image Fade in or out)
warnings console, (Strict Warnings)
firstChild property, (Accessing Elements)
Flash, Macromedia, (Using JavaScript with Flash), (Using JavaScript with Flash)
detecting browser support, (Detecting whether Flash is Installed in a Browser)
JavaScript animation and, (Making an Object Move Along a Set Path)
JavaScript communication with, (Communicating Between JavaScript and Flash)
screen reader alternative, (Making Scripts Accessible to Screen Readers)
version detection, (Detecting whether Flash is Installed in a Browser)
Flash/JavaScript Integration Kit, (Communicating Between JavaScript and Flash), (Using JavaScript with Flash)
flickering, (Making a Style Sheet Switcher), (Making a Scrolling News Ticker)
float property, CSS, (Changing the Style of a Single Element), (Making a Drop-down or Fly-out Menu)
floor method, Math object, (Doing Math with JavaScript), (Rounding a Number to x Decimal Places), (Creating and Constraining Random Numbers)
fly-out menus (see drop-down menus)
focus
accessible tooltip display on, (Making title Attribute Tooltips Display on Focus)
keyboard accessibility and, (Making Scripts Accessible to the Keyboard)
tabindex attribute and, (Making Scripts Accessible to the Keyboard)
focus event listeners
accessible drop-down menu, (Making a DHTML Menu Accessible to the Keyboard)
accessible rollover example, (Making Scripts Accessible to the Keyboard as well as the Mouse)
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
accessible tooltip example, (Making title Attribute Tooltips Display on Focus)
source of focus events, (Using Device-independent Event Handlers), (Making a DHTML Slider Control Accessible to the Keyboard)
focus method
accessible form validation, (Making Scripts Accessible to the Keyboard as well as the Mouse), (Making Scripts Accessible to Screen Readers)
misuse, (Making Scripts Accessible to the Keyboard as well as the Mouse)
opening new windows, (Using Popup Windows)
remote scripting accessibility, (Making Scripts Accessible to Screen Readers)
validation errors and, (Making Scripts Accessible to the Keyboard as well as the Mouse)
:focus pseudo-class, (Making a Drop-down or Fly-out Menu)
folder tree menus
accessibility, (Making a DHTML Menu Accessible to the Keyboard)
example script, (Indicating Expanded Branches in a Menu)
expanding menus and, (Making a Folder Tree or Expanding Menu)
indicating expanded branches, (Indicating Expanded Branches in a Menu)
restricting open branches, (Allowing Only One Menu Branch to Be Open at Any Time)
font size, custom tooltips, (Making title Attribute Tooltips Display on Focus)
for attribute, accessing, (Reading and Writing the Attributes of an Element), (Getting all Elements with a Particular Attribute Value)
for loops
avoiding repetition using, (Writing Scripts Using Less Code)
caching images, (Preloading Images)
nested, (Creating an Array of Arrays)
node structure and, (Changing the Type of an Element)
radio button access, (Reading and Setting the State of a Radio Button)
validating radio buttons, (Checking for Unselected Radio Buttons)
for-in iterators, (Debugging a Script)
form element, (Making a DHTML Slider Control Accessible to the Keyboard)
form validation, (Validating a Mandatory Text Field), (Printing Inline Error Messages when Validating a Form)
example script, (Validating a Form with an Unknown Number of Fields)
form submission and, (Stopping a Form Being Submitted Unless all its Fields are Valid)
inline error messages, (Printing Inline Error Messages when Validating a Form)
keyboard accessibility, (Making Scripts Accessible to the Keyboard as well as the Mouse)
mandatory text fields, (Validating a Mandatory Text Field)
screen reader accessibility, (Making Scripts Accessible to Screen Readers)
validating several fields, (Validating a Form with an Unknown Number of Fields)
forms collection, (Reading and Writing the Data in a Text Field)
forms processing, (Processing and Validating Forms), (Processing and Validating Forms)
displaying and hiding fields, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
validating before submission, (Stopping a Form Being Submitted Unless all its Fields are Valid)
forward slash delimiter, (Creating a Regular Expression)
frame rates, animation, (Making Animation Less Jerky)
frames collection, (Communicating Between Frames)
frames, communicating between, (Communicating Between Frames)
FSCommand feature, Flash, (Communicating Between JavaScript and Flash), (Communicating Between JavaScript and Flash)
fscommand function, ActionScript, (Communicating Between JavaScript and Flash)
function literals, (Using Braces and Semicolons (Consistent Coding Practice))
function pointers, (Using setTimeout and setInterval)
function references, (Creating Clip-based Transition Effects)
functional loops, (Using setTimeout and setInterval)
functions
abstraction and, (Writing Scripts Using Less Code)
assignment to event handlers, (Handling Events)
creating with prototype objects, (Creating Methods for an Object)
derivation of objects from, (Writing an Object Oriented Script)
execution order, (Creating Methods for an Object)
introduced, (Separating Content from Behavior (Unobtrusive Scripting))
variable access in nested, (Understanding Scope)
variable scope and, (Understanding Scope)

G

g (global flag), (Creating a Regular Expression), (Searching and Replacing Text using a Regular Expression)
garbage collection, (Avoiding Memory Leaks)
gecko browsers, (Identifying a Particular Browser)
(see also Mozilla)
get* methods, Date object, (Getting the Date and Time), (Formatting a Date into a Sentence)
getAttribute method, (Reading and Writing the Attributes of an Element), (Opening Off-site Links in a New Window)
getAttributeNS method, (Creating Elements and Text Nodes)
getComputedStyle method, (Retrieving the Computed Style of an Element)
getDate method, (Getting the Date and Time)
getDateOrdinal method, (Formatting a Date into a Sentence)
getDateString method, Date object, (Formatting a Date into a Sentence), (Formatting the Time into a 12- or 24-hour Clock)
getElementById method, (Separating Content from Behavior (Unobtrusive Scripting))
accessing elements with, (Strict Warnings), (Accessing Elements)
browser detection and, (Identifying a Particular Browser)
getElementsByTagName and, (Accessing Elements)
warnings from testing for, (Strict Warnings)
getElementsByAttribute function, (Getting all Elements with a Particular Attribute Value)
tooltip example, (Displaying a Tooltip when you Mouse Over an Element)
transition effect, (Creating Clip-based Transition Effects)
WYSIWYG editor, (Creating Editable Elements)
getElementsByTagName method, (Accessing Elements)
DOM 0 properties and, (Accessing Elements)
iterating through elements, (Getting all Elements with a Particular Attribute Value), (Changing the Style of a Group of Elements), (Retrieving Data Using XMLHttpRequest)
getEventTarget function, (Handling Events)
auto-complete text example, (Creating an Auto-complete Text Field)
drag-and-drop effects, (Implementing Drag-and-drop Behavior)
transition effect, (Creating Clip-based Transition Effects)
getHours method, Date object, (Formatting the Time into a 12- or 24-hour Clock)
getPageDimensions function, (Creating Custom Dialogs (Such as Popup Forms))
getPosition function, (Making an Object Move Along a Set Path)
getRangeAt method, (Controlling Text Selections)
getRoughPosition function, (Making Sure the Menus Stay Inside the Window), (Making title Attribute Tooltips Display on Focus)
getScrollingPosition function, (Getting the Scrolling Position), (Detecting the Position of the Mouse Cursor)
accessible tooltip example, (Making title Attribute Tooltips Display on Focus)
custom dialog positioning, (Creating Custom Dialogs (Such as Popup Forms))
drag-and-drop effects, (Implementing Drag-and-drop Behavior)
getSelection methods, (Controlling Text Selections)
getTime method, Date object, (Getting the Date and Time), (Comparing Two Dates), (Making Scripts Run Faster)
getTimeBetween function, (Formatting the Difference Between Dates)
getTimeString method, (Formatting the Time into a 12- or 24-hour Clock)
getURL function, ActionScript, (Communicating Between JavaScript and Flash)
getUTC* methods, Date object, (Getting the Date and Time)
getViewportSize function, (Getting the Viewport Size (the Available Space inside the Window))
code efficiency example, (Writing Scripts Using Less Code)
custom dialog example, (Creating Custom Dialogs (Such as Popup Forms))
tooltip positioning, (Displaying a Tooltip when you Mouse Over an Element), (Making title Attribute Tooltips Display on Focus)
global flag, regular expressions, (Creating a Regular Expression), (Searching and Replacing Text using a Regular Expression)
global variables
automatic scope assignment, (Understanding Scope)
intuitive values, (Making a Slideshow of Several Images)
naming conflicts and, (Adding Timers so the Menus Don’t Open and Close so Abruptly), (Optimizing Scripts for the Web)
stopwatch example, (Making an Image-based Clock that Updates in Real Time)
GMT string format, (Setting a Cookie to Expire at a Specific Date and Time)
graceful degradation, (JavaScript Best Practices)
grouped selectors, CSS, (Reading and Modifying an Existing Style Sheet)

H

Hal screen reader (see Dolphin Hal)
hidden elements
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
custom dialog positioning, (Creating Custom Dialogs (Such as Popup Forms))
drag-and-drop reordering, (Reordering a List Using Drag-and-drop Functionality)
hiding menu elements, (Making a Drop-down or Fly-out Menu)
hiding menus, (Making a Folder Tree or Expanding Menu)
hiding optional fields, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
hiding select elements, (Making the Menus Display Over select Elements)
offleft positioning, (Making a Drop-down or Fly-out Menu)
screen readers and, (Making Scripts Accessible to Screen Readers)
tooltip positioning, (Displaying a Tooltip when you Mouse Over an Element)
hiding code, (Adding a Script to a Page), (Hiding JavaScript Source Code)
highlighting selections, (Making a Drop-down or Fly-out Menu), (Indicating Expanded Branches in a Menu), (Controlling Text Selections)
history of JavaScript, (JavaScript Defined)
Home Page Reader, (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
horizontal navigation bars, (Making a DHTML Menu Usable via the Keyboard)
horizontal overflow, (Making Sure the Menus Stay Inside the Window)
horizontally collapsing transitions, (Creating Clip-based Transition Effects)
hot zone, drag-and-drop effects, (Implementing Drag-and-drop Behavior)
href attribute, (Opening the Current Sub-branch Automatically), (Making Scripts Accessible to the Keyboard)
HTML
equivalent DOM hierarchy, (Navigating the Document Object Model)
Flash and, (Using JavaScript with Flash)
forms collection and, (Reading and Writing the Data in a Text Field)
menu examples, (DHTML Menus and Navigation)
hyphens in style attributes, (Changing the Style of a Single Element)

I

i (case-insensitive flag), (Creating a Regular Expression)
IBM Corporation, (Making Scripts Accessible to the Keyboard)
icons
accessible drag-and-drop functionality, (Making Scripts Accessible to the Keyboard as well as the Mouse)
caching, (Indicating Expanded Branches in a Menu)
folder tree menus, (Making a Folder Tree or Expanding Menu), (Indicating Expanded Branches in a Menu)
identifyBrowser function, (Identifying a Particular Browser), (Adding New Style Sheet Rules), (Creating a New Style Sheet), (Creating an Auto-complete Text Field)
identity operator, (Comparing Two Strings)
If-Modified-Since header, XMLHttpRequest, (Retrieving Data Using XMLHttpRequest)
iframes
data transmission using, (Retrieving Data without Using XMLHttpRequest)
menu display and, (Making the Menus Display Over select Elements)
WYSIWYG editor and, (Creating Editable Elements)
image collection, (Working with Images)
image swapping, (Swapping One Image for Another)
image-based clock, (Making an Image-based Clock that Updates in Real Time)
random display, (Displaying an Image at Random)
image-based clock, (Making an Image-based Clock that Updates in Real Time)
images, (Working with Images), (Making a Progress Indicator)
fading in and out, (Making an Image Fade in or out)
inserting, with the WYSIWYG editor, (Creating Editable Elements)
preloading, (Preloading Images)
slideshow automation, (Making a Slideshow of Several Images)
staggered loading, (Making a Slideshow of Several Images)
in command, (Indexing an Array with Strings Instead of Numbers)
index pages, default, (Opening the Current Sub-branch Automatically)
indexes
arrays, (Working with Arrays), (Indexing an Array with Strings Instead of Numbers)
multi-dimensional arrays, (Creating an Array of Arrays)
radio button access, (Reading and Setting the State of a Radio Button)
select box access, (Reading and Setting the Value of a Select Box)
string index numbering, (Finding a Substring within a String), (Splitting a String into Substrings)
style sheets, (Reading and Modifying an Existing Style Sheet)
using form id tags as, (Reading and Writing the Data in a Text Field)
indexOf method, (Finding a Substring within a String), (Splitting a String into Substrings), (Making Scripts Run Faster)
inequality operator, (Comparing Two Strings)
inheritance, (What’s so Good about Object Orientation?), (Object Based Code vs Object Oriented Code), (Modelling Inheritance)
initAutoComplete function, (Creating an Auto-complete Text Field)
initDialog function, (Creating Custom Dialogs (Such as Popup Forms))
inline error messages, (Printing Inline Error Messages when Validating a Form)
inline style sheets, (Creating a New Style Sheet)
inner scopes, (Making a Drop-down or Fly-out Menu)
innerHTML property, (Debugging a Script), (Retrieving Data without Using XMLHttpRequest), (Creating Editable Elements)
input element, (Making a DHTML Slider Control Accessible to the Keyboard)
insecure page warnings, (Making the Menus Display Over select Elements)
insertBefore method, (Creating Elements and Text Nodes), (Removing an Element or Text Node), (Reordering a List Using Drag-and-drop Functionality)
insertNode method, (Controlling Text Selections)
insertRule method, (Adding New Style Sheet Rules), (Creating a New Style Sheet)
interactive scripting, (Time and Motion)
interfaces (see user interfaces)
Internet Explorer, (Getting Multiple Scripts to Work on the Same Page)
(see also attachEvent method)
:active pseudo-class, IE 5 and 6, (Making a Drop-down or Fly-out Menu)
asterisk wildcard support, (Getting all Elements with a Particular Attribute Value)
attribute copying, (Changing the Type of an Element)
browser detection, (Identifying a Particular Browser), (Making a Drop-down or Fly-out Menu)
computed styles and, (Retrieving the Computed Style of an Element)
contains method, (Making a Drop-down or Fly-out Menu), (Making the Menus Display Over select Elements)
deleting style sheet rules, (Deleting a Rule from a Style Sheet)
eventPhase property support, (Making Sure the Menus Stay Inside the Window)
float property, IE 5, (Making a Drop-down or Fly-out Menu)
FSCommand and, (Communicating Between JavaScript and Flash)
garbage collection problems, (Avoiding Memory Leaks)
getSelection alternative, (Controlling Text Selections)
insecure page warnings, (Making the Menus Display Over select Elements)
missing DOCTYPE declarations and IE 6, (Detecting Quirks Mode and Standards Mode)
mouse cursor position, (Detecting the Position of the Mouse Cursor)
opacity support, IE 5, (Making an Image Fade in or out), (Creating Custom Dialogs (Such as Popup Forms))
references to stored lengths, (Making Scripts Run Faster)
relatedTarget support, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
relative positioning quirk, (Making a Drop-down or Fly-out Menu)
screen readers and, (Making Scripts Accessible to Screen Readers)
scrollTop property and IE 5, (Getting the Scrolling Position)
setAttribute method and, (Reading and Writing the Attributes of an Element)
tag name uppercasing, (Reading and Modifying an Existing Style Sheet)
XMLHttpRequest support, (Retrieving Data Using XMLHttpRequest)
Internet Explorer for the Macintosh
chaining event handlers, IE 5, (Getting Multiple Scripts to Work on the Same Page)
distinguishing from IE for Windows, (Identifying a Particular Browser)
drag-and-drop effects and IE 5, (Implementing Drag-and-drop Behavior)
dynamically generated content, IE 5, (Sorting Tables by Column), (Creating Custom Dialogs (Such as Popup Forms)), (Creating an Auto-complete Text Field)
element sizing bug, IE 5, (Finding the Position of an Element)
event listener support, (Handling Events)
memory leaks in IE 5.0, (Creating a Regular Expression)
setTimeout function and IE 5, (Creating Clip-based Transition Effects), (Adding Timers so the Menus Don’t Open and Close so Abruptly)
slider control and IE 5, (Making a Slider Control)
style switching and IE 5, (Making a Style Sheet Switcher)
timing functions and IE 5, (Using setTimeout and setInterval), (Making an Object Move Along a Set Path)
Internet Explorer for Windows
activate event, (Using Device-independent Event Handlers)
alternate style sheet bug, (Making a Style Sheet Switcher that Handles Multiple Media Types)
array function support in IE 5.0, (Adding or Removing Members from an Array)
asterisk notation and IE 5, (Making title Attribute Tooltips Display on Focus)
child selector support, (Adding Arrows to Indicate the Presence of a Submenu)
distinguishing from IE for Mac, (Identifying a Particular Browser)
drag-and-drop bug, (Reordering a List Using Drag-and-drop Functionality)
errors console, (Debugging a Script)
expression syntax, (Adding Arrows to Indicate the Presence of a Submenu)
Flash support, (Detecting whether Flash is Installed in a Browser)
IE 5.0, positioning, (Making a Scrolling News Ticker)
iframe support, IE 5, (Making the Menus Display Over select Elements), (Retrieving Data without Using XMLHttpRequest), (Creating Editable Elements)
navigator.plugins and, (Detecting whether Flash is Installed in a Browser)
positioning in IE 5.0, (Making a Scrolling News Ticker)
rules property, (Reading and Modifying an Existing Style Sheet)
select elements, (Making the Menus Display Over select Elements)
interpreter, efficient use, (Using Braces and Semicolons (Consistent Coding Practice)), (Making Scripts Run Faster), (Making Scripts Run Faster), (Writing Scripts Using Less Code)
intuitive values, (Making a Slideshow of Several Images)
inverted color scheme style sheet, (Making a Style Sheet Switcher)
isNaN function, (Converting a String to a Number)
iteration and code efficiency, (Writing Scripts Using Less Code)

J

Java LiveConnect module, (Communicating Between JavaScript and Flash)
JAWS screen reader, (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
join method, (Turning an Array into a String)
JSON (JavaScript Object Notation) format, (Retrieving Data without Using XMLHttpRequest)

K

keyboard accessibility, (Making Scripts Accessible to the Keyboard)
drag-and-drop functionality, (Making Scripts Accessible to the Keyboard as well as the Mouse)
form validation, (Making Scripts Accessible to the Keyboard as well as the Mouse)
menu usability, (Making a DHTML Menu Usable via the Keyboard)
menus, (Making Scripts Accessible to the Keyboard), (Making a DHTML Menu Accessible to the Keyboard)
mouse accessibility combined with, (Making Scripts Accessible to the Keyboard as well as the Mouse), (Making Scripts Accessible to the Keyboard as well as the Mouse)
multiple navigation modes, (Making a DHTML Menu Accessible to the Keyboard)
scripted rollovers, (Making Scripts Accessible to the Keyboard as well as the Mouse)
simulating the experience, (Is JavaScript Inaccessible?)
slider controls, (Making a DHTML Slider Control Accessible to the Keyboard)
starting from scratch, (Making Scripts Accessible to the Keyboard as well as the Mouse)
user needs, (JavaScript and Accessibility), (Is JavaScript Inaccessible?)
keyboard navigation, (Making a Folder Tree or Expanding Menu)
menu repositioning and, (Making a DHTML Menu Usable via the Keyboard)
screen readers and, (Making Scripts Accessible to Screen Readers)
keyCode property
repeat rates and, (Making a DHTML Slider Control Accessible to the Keyboard)
testing for arrow key events, (Making a DHTML Menu Usable via the Keyboard)
testing for the Tab key, (Making a Folder Tree or Expanding Menu), (Making Scripts Accessible to Screen Readers)
keydown event, (Making a Folder Tree or Expanding Menu), (Making a DHTML Menu Usable via the Keyboard)
keydown event listeners, (Making a DHTML Slider Control Accessible to the Keyboard), (Creating an Auto-complete Text Field)
keypress event, (Making a DHTML Menu Usable via the Keyboard)
keypress event listeners, (Creating an Auto-complete Text Field)
keyup event, (Making a Folder Tree or Expanding Menu)
keyup event listeners, (Making a DHTML Slider Control Accessible to the Keyboard), (Making Scripts Accessible to Screen Readers)
Konqueror browser, (Reading and Writing the Attributes of an Element), (Getting the Scrolling Position), (Identifying a Particular Browser), (Adding Timers so the Menus Don’t Open and Close so Abruptly)

L

label element, (Printing Inline Error Messages when Validating a Form), (Making Scripts Accessible to Screen Readers)
lang pseudo-class, (Making title Attribute Tooltips Display on Focus)
language attribute, script tag, (Adding a Script to a Page)
lastChild property, (Accessing Elements)
lastIndexOf method, (Finding a Substring within a String)
leap years, (Comparing Two Dates)
left property, style object, (Making a DHTML Menu Accessible to the Keyboard)
length property, (Splitting a String into Substrings)
iterating through arrays, (Creating an Array of Arrays)
iterating through collections, (Making Scripts Run Faster)
limitations, (Indexing an Array with Strings Instead of Numbers)
push function workaround, (Adding or Removing Members from an Array)
limitations of JavaScript, (JavaScript’s Limitations)
line breaks, (Debugging a Script), (Optimizing Scripts for the Web)
line feed character, (Including a Special Character in a String)
link element, (Making a Style Sheet Switcher)
links
creation, with the WYSIWYG editor, (Creating Editable Elements)
insertion, DOM methods, (Creating Elements and Text Nodes)
keyboard accessibility and, (Making Scripts Accessible to the Keyboard)
navigation and screen reader identification, (Making Scripts Accessible to Screen Readers)
opening in new windows, (Opening Off-site Links in a New Window)
screen reader identification of, (Making Scripts Accessible to Screen Readers)
styled links in slider controls, (Making a DHTML Slider Control Accessible to the Keyboard)
list item mouseout function, (Making a Drop-down or Fly-out Menu), (Making the Menus Display Over select Elements)
list item mouseover function, (Making a Drop-down or Fly-out Menu), (Making Sure the Menus Stay Inside the Window)
lists (see ordered lists) (see unordered lists)
LiveConnect module, Java, (Communicating Between JavaScript and Flash)
load event
rendering completion and, (Finding the Size of an Element)
running scripts before, (Making Scripts Run Before the Load Event)
load event handler
multiple script problems, (Getting Multiple Scripts to Work on the Same Page)
script location, (Separating Content from Behavior (Unobtrusive Scripting))
loading scripts, (Adding a Script to a Page)
local time defined, (Getting the Date and Time)
LocalConnection function, ActionScript, (Communicating Between JavaScript and Flash)
location property, document object, (Making Scripts Accessible to Screen Readers)
looping efficiently, (Reading and Setting the State of a Radio Button), (Making Scripts Run Faster), (Making Scripts Run Faster)
(see also for loops)

M

m (multi-line flag), (Creating a Regular Expression)
Macintosh versions of IE (see Internet Explorer for the Macintosh)
Macromedia Corporation (see Flash)
mandatory text fields, (Validating a Mandatory Text Field)
Math class
abs method, (Making an Object Move Along a Set Path)
built-in operators, (Doing Math with JavaScript)
ceil method, (Making a Progress Indicator)
floor method, (Creating and Constraining Random Numbers)
properties, (Doing Math with JavaScript)
random method, (Doing Math with JavaScript), (Creating and Constraining Random Numbers)
round method, (Creating and Constraining Random Numbers)
mathematics (see numeric data)
matrixes, (Creating an Array of Arrays), (Sorting a Multi-dimensional Array)
media attribute, (Making a Style Sheet Switcher that Handles Multiple Media Types)
media types, styling, (Creating a New Style Sheet)
memory leaks, (Creating a Regular Expression), (Avoiding Memory Leaks), (Avoiding Memory Leaks)
menus, (DHTML Menus and Navigation)
accessibility, (Making a Drop-down or Fly-out Menu)
adding timers, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
closing, (Making a DHTML Menu Accessible to the Keyboard)
drop-down menu example, (Making a Drop-down or Fly-out Menu), (Making the Menus Display Over select Elements)
expanding menus, (Making a Folder Tree or Expanding Menu)
functional types, (DHTML Menus and Navigation)
keyboard accessibility, (Making a DHTML Menu Accessible to the Keyboard)
keyboard usability, (Making a DHTML Menu Usable via the Keyboard)
nested submenus, (Making a DHTML Menu Accessible to the Keyboard)
repositioning, (Making Sure the Menus Stay Inside the Window)
stacking, (Making Sure the Menus Stay Inside the Window)
method creation, (Creating Methods for an Object), (Creating Methods for an Object)
methods, overriding, (Adding or Removing Members from an Array)
MIME type, (Creating Elements and Text Nodes)
modal interaction, (Making Scripts Accessible to Screen Readers)
modifiers, regular expression, (Creating a Regular Expression)
modulus operator, (Doing Math with JavaScript), (Converting Numbers to Ordinals (-st, -nd, -rd, -th))
motion effects, (Time and Motion), (Making an Object Move Along a Set Path), (Making Animation Less Jerky)
(see also animation)
slider controls, (Making a Slider Control)
user control over, (Making a Scrolling News Ticker)
mouse cursor
appearance change, (Implementing Drag-and-drop Behavior)
position detection, (Detecting the Position of the Mouse Cursor), (Creating an Auto-complete Text Field)
mouse events, screen readers, (Making a Folder Tree or Expanding Menu)
mouse movements
adding timers to menus, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
threshold values, (Implementing Drag-and-drop Behavior), (Reordering a List Using Drag-and-drop Functionality)
mousedown event listeners, (Creating an Auto-complete Text Field)
mousedown events, (Making Scripts Accessible to Screen Readers)
mouseout event listeners
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
menu timers, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
removing iframe elements, (Making the Menus Display Over select Elements)
mouseover effects
accessible tooltip display, (Making title Attribute Tooltips Display on Focus)
image swapping, (Swapping One Image for Another)
style sheet rule for, (Adding New Style Sheet Rules)
tooltip display, (Displaying a Tooltip when you Mouse Over an Element)
mouseover event listeners
accessible drop-down menu, (Making a DHTML Menu Accessible to the Keyboard)
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
creating iframe elements, (Making the Menus Display Over select Elements)
menu timers, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
mouseover event sources, (Using Device-independent Event Handlers), (Making title Attribute Tooltips Display on Focus), (Making Scripts Accessible to Screen Readers)
movement (see animation) (see motion effects) (see mouse movements)
moveObject function, (Making an Object Move Along a Set Path)
Mozilla browsers, (Debugging a Script)
(see also Firefox)
browser detection, (Identifying a Particular Browser)
distinguishing Safari from, (Identifying a Particular Browser)
focus event bubbling, (Making Scripts Accessible to the Keyboard as well as the Mouse)
script timeouts, (Making Scripts Run Faster)
strict warnings and, (Making Scripts Run Faster)
MSXML parser, (Retrieving Data Using XMLHttpRequest)
multi-dimensional arrays, (Creating an Array of Arrays), (Sorting a Multi-dimensional Array)
multi-line flag, regular expressions, (Creating a Regular Expression)
multiple inheritance, (Modelling Inheritance)
multiple scripts
event handlers and, (Getting Multiple Scripts to Work on the Same Page), (Handling Events)
event listeners and, (Handling Events)

N

named arguments, (Making Scripts Run Faster)
namespaces, (Creating Elements and Text Nodes), (Implementing Namespaces)
naming conflicts, (Implementing Namespaces), (Optimizing Scripts for the Web)
NaN (Not a Number) value, (Converting a String to a Number)
navigation using lists, (DHTML Menus and Navigation), (Making Scripts Accessible to Screen Readers)
(see also keyboard navigation)
(see also menus)
navigator object properties, (Identifying a Particular Browser), (Detecting whether Flash is Installed in a Browser)
browser detection and, (Identifying a Particular Browser), (Optimizing Scripts for the Web)
nesting
event bubbling and, (Handling Events)
nested closures, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
nested divs, (Making a Slider Control)
nested for loops, (Creating an Array of Arrays)
nested functions, variable access, (Understanding Scope)
nested lists, (DHTML Menus and Navigation)
nested submenus, (Making a DHTML Menu Accessible to the Keyboard)
ternary operators, (Making Scripts Run Faster)
Netscape, (JavaScript Defined), (Communicating Between JavaScript and Flash)
news ticker example (see scrolling news ticker)
nextSibling property, (Accessing Elements)
nodeName property, (Accessing Elements)
nodes, DOM
cloning, (Changing the Type of an Element)
iterative change warning, (Changing the Type of an Element)
node types, (Navigating the Document Object Model)
relational properties, (Accessing Elements)
whitespace nodes, (Accessing Elements)
nodeType property, (Accessing Elements)
nodeValue property, (Creating Elements and Text Nodes)
non-identity operator, (Comparing Two Strings)
noscript element, (Providing for Users who Don’t Have JavaScript (Progressive Enhancement))
Number function, (Converting a String to a Number)
numeric data, (Working with Numbers), (Working with Numbers)
adding ordinal suffixes, (Converting Numbers to Ordinals (-st, -nd, -rd, -th))
base detection, (Converting a String to a Number)
converting dates to strings, (Converting a Number to a String)
converting numbers to strings, (Converting a Number to a String)
converting strings to, (Converting a String to a Number)
currency values, (Formatting Currency Values)
random numbers, (Creating and Constraining Random Numbers)
rounding numbers, (Rounding a Number to x Decimal Places)
sorting and compare function, (Sorting an Array into Alphabetical or Numeric Order)
sorting arrays, (Sorting an Array into Alphabetical or Numeric Order)
sorting in tables, (Sorting Tables by Column)
string concatenation risks, (Converting a Number to a String)
testing for, (Converting a String to a Number), (Testing whether a String Contains Only Numeric Data)
text field validation, (Validating a Numeric Field)

O

obfuscation, source code, (Hiding JavaScript Source Code), (Optimizing Scripts for the Web)