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)
object based scripting, (Indexing an Array with Strings Instead of Numbers), (Object Based Code vs Object Oriented Code)
object detection (see feature detection)
object orientation, (Object Orientation in JavaScript), (Object Orientation in JavaScript)
code efficiency and, (Writing Scripts Using Less Code)
example script, (Writing an Object Oriented Script)
method creation, (Creating Methods for an Object), (Creating Methods for an Object)
modelling inheritance, (Modelling Inheritance)
object based code and, (Object Based Code vs Object Oriented Code)
principles and benefits, (Object Orientation in JavaScript), (What’s so Good about Object Orientation?)
object reference creation, (Making Scripts Run Faster)
object-literals, (Indexing an Array with Strings Instead of Numbers)
objects
checking the existence of, (Implementing Namespaces)
created in other event listeners, (Displaying a Tooltip when you Mouse Over an Element)
replication by cloning, (Object Based Code vs Object Oriented Code)
storing references to, (Making Scripts Run Faster)
warnings connected with, (Strict Warnings)
offleft positioning, (Making a Drop-down or Fly-out Menu)
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
hiding menus, (Making a Drop-down or Fly-out Menu), (Making a Folder Tree or Expanding Menu)
optional questions, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
overriding, (Opening the Current Sub-branch Automatically)
screen readers and, (Making Scripts Accessible to Screen Readers)
offset dimensions bug, IE 5 for Mac, (Finding the Position of an Element)
offsetHeight property, (Finding the Size of an Element)
offsetLeft property, (Finding the Position of an Element), (Making Sure the Menus Stay Inside the Window)
offsetParent property, (Finding the Position of an Element)
offsetTop property, (Finding the Position of an Element)
offsetWidth property, (Finding the Size of an Element), (Making a Scrolling News Ticker), (Making a Drop-down or Fly-out Menu), (Making Sure the Menus Stay Inside the Window)
on* event handlers, (Handling Events)
(see also * events)
onclick event handler, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
online application design, (Building Web Applications with JavaScript), (Building Web Applications with JavaScript)
frameworks, (Retrieving Data Using XMLHttpRequest)
onload event handlers, (Making a Drop-down or Fly-out Menu)
hiding optional elements, (Making Form Fields Appear or Disappear, Based on the Value of other Fields)
preloading images, (Swapping One Image for Another)
progress indicator, (Making a Progress Indicator)
onmousedown event handlers, (Creating Editable Elements)
onscroll event handler, (Getting the Scrolling Position)
onsubmit event handler, (Stopping a Form Being Submitted Unless all its Fields are Valid)
opacity property, CSS, (Making an Image Fade in or out), (Reordering a List Using Drag-and-drop Functionality), (Creating Custom Dialogs (Such as Popup Forms))
open method
window object, (Using Popup Windows), (Opening Off-site Links in a New Window)
XMLHttpRequest object, (Retrieving Data Using XMLHttpRequest)
Opera browser
absolutely positioned elements, (Making a Scrolling News Ticker)
attribute leading spaces, (Making a Drop-down or Fly-out Menu)
Content-Type headers, (Retrieving Data Using XMLHttpRequest)
detection, (Identifying a Particular Browser)
spatial navigation features, (Making title Attribute Tooltips Display on Focus), (Making a DHTML Menu Usable via the Keyboard)
tooltip display, (Displaying a Tooltip when you Mouse Over an Element)
window sizing, (Using Popup Windows)
operating systems
browser detection and, (Identifying a Particular Browser)
distinguishing between IE versions, (Identifying a Particular Browser)
GUI behaviors, (Making Scripts Accessible to the Keyboard)
operator precedence, (Doing Math with JavaScript)
operators, mathematical, (Doing Math with JavaScript)
optimization, (Keeping up the Pace), (Keeping up the Pace)
anticipating load events, (Making Scripts Run Before the Load Event)
avoiding memory leaks, (Avoiding Memory Leaks), (Avoiding Memory Leaks)
browser-specific optimizations, (Making Scripts Run Faster)
compressing production scripts, (Optimizing Scripts for the Web), (Optimizing Scripts for the Web)
concise coding, (Writing Scripts Using Less Code), (Writing Scripts Using Less Code)
faster scripts, (Making Scripts Run Faster), (Making Scripts Run Faster)
looping efficiently, (Making Scripts Run Faster), (Making Scripts Run Faster)
ordered lists, (Reordering a List Using Drag-and-drop Functionality)
ordinal numbers, (Converting Numbers to Ordinals (-st, -nd, -rd, -th)), (Formatting a Date into a Sentence)
overflow property, (Making a Scrolling News Ticker)
overline text decoration, (Reading and Modifying an Existing Style Sheet), (Adding New Style Sheet Rules)
overriding
classnames, (Implementing Namespaces)
methods, (Adding or Removing Members from an Array), (What’s so Good about Object Orientation?), (What’s so Good about Object Orientation?)
multiple scripts and, (Separating Content from Behavior (Unobtrusive Scripting)), (Getting Multiple Scripts to Work on the Same Page)
styles, (Creating a New Style Sheet)
variables, (Understanding Scope), (Optimizing Scripts for the Web)

P

page dimensions, (Creating Custom Dialogs (Such as Popup Forms))
(see also viewport size)
page load event, (Making a Style Sheet Switcher)
page requests, individual, (Making Scripts Accessible to Screen Readers)
pageX and pageY properties, (Detecting the Position of the Mouse Cursor)
pageYOffset property, window object, (Getting the Scrolling Position)
paragraphs, changing to divs, (Changing the Type of an Element)
parentheses, effects, (Doing Math with JavaScript), (Converting a Number to a String)
parentNode property, (Accessing Elements)
parseFloat function, (Converting a String to a Number), (Validating a Numeric Field)
parseInt function, (Converting a String to a Number), (Validating a Numeric Field)
pasteHTML method, (Controlling Text Selections)
path setting, cookies, (Making a Cookie Accessible Only from a Specific Domain or Path)
per cent sign
modulus operator, (Doing Math with JavaScript)
URL coding, (Encoding a URL)
performance of scripts (see optimization)
persistent style sheets, (Making a Style Sheet Switcher)
phases, event cycle, (Handling Events)
phone numbers, (Testing whether a String is a Valid Phone Number)
photographic slideshows, (Making a Slideshow of Several Images)
pipe character, (Creating a Regular Expression)
pixels, normalization to, (Retrieving the Computed Style of an Element)
placeholders, (Swapping One Image for Another)
plugins (see Flash, Macromedia)
plugins property, navigator object, (Detecting whether Flash is Installed in a Browser)
plus sign, in regular expressions, (Creating a Regular Expression)
polymorphism, (What’s so Good about Object Orientation?)
popups, (Using Popup Windows), (Using Popup Windows), (Creating Custom Dialogs (Such as Popup Forms))
error reporting to, (Debugging a Script)
ethical use, (Using Popup Windows)
usability and accessibility, (Using Popup Windows)
position detection
animation and, (Making an Object Move Along a Set Path)
elements, (Finding the Position of an Element)
mouse cursor, (Detecting the Position of the Mouse Cursor)
position inversion, (Making Sure the Menus Stay Inside the Window)
position property, CSS, (Finding the Position of an Element)
position rounding, (Making Sure the Menus Stay Inside the Window)
positioning, (Creating an Auto-complete Text Field)
(see also absolute positioning)
list items with CSS, (Reordering a List Using Drag-and-drop Functionality)
menu repositioning, (Making Sure the Menus Stay Inside the Window), (Making a DHTML Menu Usable via the Keyboard)
offleft positioning, (Making Form Fields Appear or Disappear, Based on the Value of other Fields), (Making a Drop-down or Fly-out Menu), (Making a Folder Tree or Expanding Menu), (Opening the Current Sub-branch Automatically), (Making a DHTML Slider Control Accessible to the Keyboard), (Making Scripts Accessible to Screen Readers)
position detection, (Making Sure the Menus Stay Inside the Window)
tooltips, (Displaying a Tooltip when you Mouse Over an Element), (Making title Attribute Tooltips Display on Focus)
pow method, Math object, (Doing Math with JavaScript)
preferred style sheets, (Making a Style Sheet Switcher)
preloading images, (Preloading Images)
image swapping, (Swapping One Image for Another)
image-based clock, (Making an Image-based Clock that Updates in Real Time)
progress indicator, (Making a Progress Indicator)
presentation (see separation of content...)
preventDefault method, (Handling Events)
previousSibling property, (Accessing Elements)
private members, (What’s so Good about Object Orientation?), (Object Based Code vs Object Oriented Code)
probability distributions, (Displaying an Image at Random)
processing power and animation, (Making Animation Less Jerky), (Making Animation Less Jerky)
processor latency, (Making an Image-based Clock that Updates in Real Time)
progress indicators, (Making a Progress Indicator)
progressive enhancement, (JavaScript Best Practices), (Providing for Users who Don’t Have JavaScript (Progressive Enhancement)), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
properties, direct referencing, (Writing an Object Oriented Script)
property creation, object oriented, (Writing an Object Oriented Script)
Prototype JavaScript framework, (Retrieving Data Using XMLHttpRequest)
prototyping, (Adding or Removing Members from an Array), (Modelling Inheritance)
cloning objects by, (Modelling Inheritance)
method creation using, (Creating Methods for an Object)
methods for built-in objects, (Creating Methods for an Object)
mimicking inheritance, (What’s so Good about Object Orientation?), (Object Based Code vs Object Oriented Code)
object prototyping, (Formatting a Date into a Sentence)
prototype object, (Creating Methods for an Object)
prototype object functions, (Creating Methods for an Object)
prototype property, (Creating Methods for an Object)
pseudo-classes, CSS, (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)
pseudorandom numbers, (Creating and Constraining Random Numbers)
push method, (Adding or Removing Members from an Array)

Q

qualified values, href attributes, (Opening the Current Sub-branch Automatically)
question mark, regular expressions, (Creating a Regular Expression)
Quirks mode, (Getting the Scrolling Position), (Detecting Quirks Mode and Standards Mode)
quotes, (Including a Special Character in a String), (Indexing an Array with Strings Instead of Numbers)

R

radio buttons, (Reading and Setting the State of a Checkbox), (Reading and Setting the State of a Radio Button), (Checking for Unselected Radio Buttons)
random image display, (Displaying an Image at Random)
random method, Math object, (Doing Math with JavaScript), (Creating and Constraining Random Numbers)
random numbers, (Creating and Constraining Random Numbers)
random sorting, (Sorting an Array Randomly)
ranges
auto-complete text fields, (Creating an Auto-complete Text Field)
browser support, (Controlling Text Selections)
cursor position and, (Creating an Auto-complete Text Field)
getSelection alternative, (Controlling Text Selections)
specifying limits of, (Controlling Text Selections)
readability of code
braces and semicolons, (Using Braces and Semicolons (Consistent Coding Practice))
compacting conditions and, (Writing Scripts Using Less Code)
nested operators, (Making Scripts Run Faster)
string concatenation and, (Converting a Number to a String)
readyState property, XMLHttpRequest, (Retrieving Data Using XMLHttpRequest)
recursive functions, (Sorting Tables by Column), (Making a Drop-down or Fly-out Menu), (Opening the Current Sub-branch Automatically)
redirects, accessibility and, (Making Scripts Accessible to Screen Readers)
referencing
circular references, (Avoiding Memory Leaks)
direct referencing, (Writing an Object Oriented Script)
eval function, (Making Scripts Run Faster)
frequently used objects, (Making Scripts Run Faster)
function definition and, (Creating Methods for an Object)
function references, (Creating Clip-based Transition Effects)
RegExp class, (Creating a Regular Expression)
regular expressions, (Creating a Regular Expression), (Searching and Replacing Text using a Regular Expression)
className property retrieval, (Adding and Removing Multiple Classes to/from an Element)
comment and whitespace removal, (Optimizing Scripts for the Web)
Flash version detection, (Detecting whether Flash is Installed in a Browser)
indexOf and, (Splitting a String into Substrings), (Making Scripts Run Faster)
matching text in strings, (Testing whether a String Matches a Regular Expression)
searching for and replacing text, (Searching and Replacing Text using a Regular Expression)
special characters, (Creating a Regular Expression)
substring location test, (Making Scripts Run Faster)
testing for email addresses, (Testing whether a String is a Valid Email Address), (Validating an Email Address Field)
testing for leading spaces, (Making a Drop-down or Fly-out Menu)
testing for numeric data, (Testing whether a String Contains Only Numeric Data)
testing for phone numbers, (Testing whether a String is a Valid Phone Number)
testing for whitespace, (Validating a Mandatory Text Field), (Sorting Tables by Column)
rel attribute, (Opening Off-site Links in a New Window), (Making a Style Sheet Switcher that Handles Multiple Media Types)
related property, (Avoiding Memory Leaks)
relatedTarget property, (Adding Timers so the Menus Don’t Open and Close so Abruptly), (Making a DHTML Menu Accessible to the Keyboard)
relative positioning, (Finding the Position of an Element), (Making a Scrolling News Ticker), (Making a Drop-down or Fly-out Menu)
remote procedure calls (see data transmission)
remote scripting
individual page requests and, (Making Scripts Accessible to Screen Readers)
keyboard accessibility, (Making Scripts Accessible to the Keyboard as well as the Mouse)
screen readers and, (Making Scripts Accessible to Screen Readers)
removeChild method, (Removing an Element or Text Node)
removeEventListener method, (Handling Events)
removeRule method, IE, (Deleting a Rule from a Style Sheet)
rendering modes, (Getting the Scrolling Position), (Detecting Quirks Mode and Standards Mode)
repeat rates, key events, (Making a DHTML Slider Control Accessible to the Keyboard)
replace method, (Searching and Replacing Text using a Regular Expression), (Retrieving Data without Using XMLHttpRequest)
replaceChild method, (Creating Elements and Text Nodes)
repositioning (see positioning)
reset functions, (Allowing Only One Menu Branch to Be Open at Any Time)
resizing swapped images, (Swapping One Image for Another)
responseText property, XMLHttpRequest, (Retrieving Data Using XMLHttpRequest)
responseXML property, XMLHttpRequest, (Retrieving Data Using XMLHttpRequest)
retrieveComputedStyle function, (Making an Object Move Along a Set Path)
return statements, compacting, (Writing Scripts Using Less Code)
returnValue property, (Handling Events)
rollover effects, (Making Scripts Accessible to the Keyboard as well as the Mouse), (Making Scripts Accessible to Screen Readers)
rollover styles, (Making a Drop-down or Fly-out Menu), (Adding Arrows to Indicate the Presence of a Submenu)
round brackets, (Creating a Regular Expression), (Searching and Replacing Text using a Regular Expression)
round method, Math object, (Doing Math with JavaScript), (Rounding a Number to x Decimal Places), (Creating and Constraining Random Numbers)
rounding numbers, (Rounding a Number to x Decimal Places), (Formatting Currency Values)
rules property, IE, (Reading and Modifying an Existing Style Sheet)

S

Safari browser
cancelling link defaults, (Handling Events), (Creating Custom Dialogs (Such as Popup Forms)), (Creating Editable Elements)
CSS 2 System Colors and, (Making title Attribute Tooltips Display on Focus)
detection, (Identifying a Particular Browser)
distinguishing from Mozilla, (Identifying a Particular Browser)
DOM support limitations, (Adding New Style Sheet Rules), (Deleting a Rule from a Style Sheet), (Creating a New Style Sheet)
events from text nodes, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
href values, (Opening the Current Sub-branch Automatically)
input element problem, (Making a DHTML Slider Control Accessible to the Keyboard)
lang pseudo-class, (Making title Attribute Tooltips Display on Focus)
scroll event problems, (Getting the Scrolling Position)
setTimeout support, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
stopDefaultAction function and, (Making a Folder Tree or Expanding Menu)
stylesheet collection, (Reading and Modifying an Existing Style Sheet)
Safari Enhancer, (Debugging a Script)
Sajax JavaScript framework, (Retrieving Data Using XMLHttpRequest)
scope (see variable scopes)
screen readers
accessible scripts for, (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
current sub-branch display, (Opening the Current Sub-branch Automatically)
detection through events, (Making a Folder Tree or Expanding Menu)
Flash alternative, (Making Scripts Accessible to Screen Readers)
form validation, (Making Scripts Accessible to Screen Readers)
hiding menu elements, (Making a Drop-down or Fly-out Menu)
identification, (Making Scripts Accessible to Screen Readers)
link identification by, (Making Scripts Accessible to Screen Readers)
menu accessibility, (Making Scripts Accessible to the Keyboard)
modal interaction and, (Making Scripts Accessible to Screen Readers)
problems with dynamic content, (Making Scripts Accessible to the Keyboard), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
products listed, (Making Scripts Accessible to Screen Readers)
reading label text, (Making Scripts Accessible to Screen Readers)
remote scripting and, (Making Scripts Accessible to Screen Readers)
scripting support, (Is JavaScript Inaccessible?), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
simulating the user experience, (Making Scripts Accessible to Screen Readers)
suggested best practice, (Making Scripts Accessible to Screen Readers)
tricks and hacks, (Making Scripts Accessible to Screen Readers)
user needs, (JavaScript and Accessibility), (Is JavaScript Inaccessible?), (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
script element, (Adding a Script to a Page), (Adding a Script to a Page)
scripts
anticipating load events, (Making Scripts Run Before the Load Event)
concise coding, (Writing Scripts Using Less Code), (Writing Scripts Using Less Code)
faster running, (Making Scripts Run Faster), (Making Scripts Run Faster)
inside iframes, (Retrieving Data without Using XMLHttpRequest)
multiple, and DOM 0 event handlers, (Handling Events)
timing out, (Making Scripts Run Faster)
Web version optimization, (Optimizing Scripts for the Web), (Optimizing Scripts for the Web)
scrollBy method, window object, (Making the Page Scroll to a Particular Position)
scrolling
menu repositioning and, (Making Sure the Menus Stay Inside the Window)
prevention, accessible menu example, (Making a DHTML Menu Usable via the Keyboard)
scroll position, (Getting the Scrolling Position), (Making the Page Scroll to a Particular Position), (Detecting the Position of the Mouse Cursor)
scrolling news ticker, (Making a Scrolling News Ticker)
screen readers and, (Making Scripts Accessible to Screen Readers)
user control, (Making a Scrolling News Ticker)
scrollTo method, window object, (Making the Page Scroll to a Particular Position)
scrollTop property, (Getting the Scrolling Position)
security
cross-frame scripting, (Communicating Between Frames)
iframes and, (Retrieving Data without Using XMLHttpRequest)
restrictions on JavaScript, (JavaScript’s Limitations)
XMLHttpRequest and, (Retrieving Data Using XMLHttpRequest)
select boxes, (Reading and Setting the Value of a Select Box)
select elements, (Making the Menus Display Over select Elements), (Making Scripts Accessible to Screen Readers)
selectedIndex property, (Reading and Setting the Value of a Select Box)
selectionStart property, (Creating an Auto-complete Text Field)
semicolon terminator, (Using Braces and Semicolons (Consistent Coding Practice)), (Optimizing Scripts for the Web)
send method, XMLHttpRequest object, (Retrieving Data Using XMLHttpRequest)
separation of content, style, and behavior, (Separating Content from Behavior (Unobtrusive Scripting)), (DHTML Menus and Navigation), (Making a Drop-down or Fly-out Menu)
status of navigation arrows, (Adding Arrows to Indicate the Presence of a Submenu)
separators
className property, (Adding and Removing Multiple Classes to/from an Element)
CSS property values, (Creating Clip-based Transition Effects)
sub-cookies, (Circumventing Browser Restrictions on the Number of Cookies you can Use)
serif text style sheet, (Making a Style Sheet Switcher)
server XMLHttpRequests, (Retrieving Data Using XMLHttpRequest)
server-side scripting, (JavaScript’s Limitations), (Making an Image-based Clock that Updates in Real Time)
set* methods, Date object, (Getting the Date and Time)
setAttribute method, (Reading and Writing the Attributes of an Element)
setInterval function, (Making an Image-based Clock that Updates in Real Time)
alternative to onscroll, (Getting the Scrolling Position)
alternatives, (Making an Object Move Along a Set Path)
assessing document loading, (Making Scripts Run Before the Load Event)
debugging and, (Debugging a Script)
setTimeout compared to, (Using setTimeout and setInterval)
soccer ball animation, (Making an Object Move Along a Set Path)
stopping execution, (Using setTimeout and setInterval)
setSelectionRange method, (Creating an Auto-complete Text Field)
setTimeout function, (Making a Slideshow of Several Images)
accessible slider control, (Making a DHTML Slider Control Accessible to the Keyboard)
accessible tooltip example, (Making title Attribute Tooltips Display on Focus)
animation example, (Making an Image Fade in or out)
auto-complete text example, (Creating an Auto-complete Text Field)
clip–based transitions, (Creating Clip-based Transition Effects)
iframes and, (Retrieving Data without Using XMLHttpRequest)
menu timers, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
setInterval compared to, (Using setTimeout and setInterval)
style sheet maintenance script, (Making a Style Sheet Switcher)
WYSIWYG editor, (Creating Editable Elements)
shopping cart applications, (Rounding a Number to x Decimal Places), (Implementing Drag-and-drop Behavior)
shortcuts
DOM 0 attributes, (Handling Events)
forms collection, (Reading and Writing the Data in a Text Field)
ternary operator, (Using Popup Windows)
show attribute, XLink, (Working with Windows and Frames)
shrinking transitions, (Creating Clip-based Transition Effects)
sidebar property, window object, (Identifying a Particular Browser)
single-letter variable names, (Optimizing Scripts for the Web)
slider controls, (Making a Slider Control)
accessible drag-and-drop functionality, (Making Scripts Accessible to the Keyboard as well as the Mouse)
example appearance, (Making a Slider Control)
fixed values, (Making a Slider Control)
keyboard accessibility, (Making a DHTML Slider Control Accessible to the Keyboard)
slideshows, (Making a Slideshow of Several Images)
soccer ball animation, (Making an Object Move Along a Set Path)
sort method, (Sorting an Array into Alphabetical or Numeric Order), (Sorting a Multi-dimensional Array), (Sorting an Array Randomly)
sorting
drag-and-drop reordering, (Reordering a List Using Drag-and-drop Functionality)
list items, real-time effect, (Reordering a List Using Drag-and-drop Functionality)
random sorting, (Sorting an Array Randomly)
stable sorts, (Sorting a Multi-dimensional Array)
table sorting , (Sorting Tables by Column)
source code visibility, (JavaScript Defined), (Hiding JavaScript Source Code)
source order execution, (Making a Style Sheet Switcher)
source order indexing, (Reading and Modifying an Existing Style Sheet)
spaces
className property, (Adding and Removing Multiple Classes to/from an Element)
global removal, dangers, (Optimizing Scripts for the Web)
underscores conversion to, (Creating Methods for an Object)
span element, (Making a Progress Indicator)
speaking browsers, (Making a Folder Tree or Expanding Menu)
special characters
avoiding in cookies, (Writing Cookies)
escaping in strings, (Including a Special Character in a String)
regular expressions, (Creating a Regular Expression), (Adding and Removing Multiple Classes to/from an Element)
URLs, (Encoding a URL)
splice method, (Adding or Removing Members from an Array)
split method, (Splitting a String into Substrings), (Reading a Cookie)
spoofing, (Identifying a Particular Browser)
sqrt method, Math object, (Doing Math with JavaScript)
square brackets, (Creating a Regular Expression), (Working with Arrays), (Making Scripts Run Faster)
src property, (Making the Menus Display Over select Elements)
stable sorting, (Sorting a Multi-dimensional Array)
staggered loading, (Making a Slideshow of Several Images)
standardization, (JavaScript Defined), (Formatting a Date into a Sentence)
Standards mode, (Getting the Scrolling Position), (Detecting Quirks Mode and Standards Mode)
static elements, (Implementing Drag-and-drop Behavior)
static HTML, (Providing for Users who Don’t Have JavaScript (Progressive Enhancement))
status argument, window.open, (Using Popup Windows)
status bars, (Making a Progress Indicator)
stop button, news ticker, (Making a Scrolling News Ticker)
stop method, ActionScript, (Communicating Between JavaScript and Flash)
stopDefaultAction function, (Handling Events)
drag-and-drop effects, (Implementing Drag-and-drop Behavior)
Opera tooltip display, (Displaying a Tooltip when you Mouse Over an Element)
Safari bug, (Making a Folder Tree or Expanding Menu)
slider control example, (Making a Slider Control)
stopPropagation method, (Handling Events)
stopwatch example, (Making an Image-based Clock that Updates in Real Time)
strict warnings, (Strict Warnings), (Making Scripts Run Faster)
string concatenation, (Converting a Number to a String), (Adding and Removing Multiple Classes to/from an Element), (Formatting a Date into a Sentence)
string data type
array indexing using, (Indexing an Array with Strings Instead of Numbers)
converting arrays to, (Turning an Array into a String)
converting numbers to, (Converting a Number to a String)
converting to numbers, (Converting a String to a Number)
cookies as, (Writing Cookies)
existence of data, (Finding a Substring within a String)
substrings, (Finding a Substring within a String)
String function, (Converting a Number to a String)
string manipulation, (Including a Special Character in a String), (Working with Strings)
case changes, (Transforming the Character Case of a String)
comparing strings, (Comparing Two Strings), (Sorting Tables by Column)
date formatting, (Formatting a Date into a Sentence), (Formatting the Difference Between Dates)
matching with regular expressions, (Testing whether a String Matches a Regular Expression)
searching for and replacing text, (Searching and Replacing Text using a Regular Expression)
substrings, (Finding a Substring within a String), (Splitting a String into Substrings), (Making Scripts Run Faster)
testing for email addresses, (Testing whether a String is a Valid Email Address)
testing for numeric data, (Testing whether a String Contains Only Numeric Data)
testing for phone numbers, (Testing whether a String is a Valid Phone Number)
style object
computed styles and, (Retrieving the Computed Style of an Element)
left property, (Making a DHTML Menu Accessible to the Keyboard)
style attribute and, (Changing the Style of a Single Element)
style property references, (Making Scripts Run Faster)
style sheet switching, (Making a Style Sheet Switcher)
built-in, (Making a Style Sheet Switcher)
loading delays and, (Making Scripts Run Before the Load Event)
media types and, (Making a Style Sheet Switcher that Handles Multiple Media Types)
style sheets, (Using JavaScript with CSS)
(see also CSS)
adding new rules, (Adding New Style Sheet Rules)
creating, (Creating a New Style Sheet)
deleting rules, (Deleting a Rule from a Style Sheet)
drop-down menu example, (Making a Drop-down or Fly-out Menu), (Adding Arrows to Indicate the Presence of a Submenu)
expanding menu example, (Making a Folder Tree or Expanding Menu)
iframes and, (Making the Menus Display Over select Elements)
maintaining alternate style sheet states, (Making a Style Sheet Switcher)
manipulating, (Reading and Modifying an Existing Style Sheet)
media types and, (Creating a New Style Sheet)
types of, (Making a Style Sheet Switcher)
styleFloat property, (Changing the Style of a Single Element)
styles
changing for a group of elements, (Changing the Style of a Group of Elements)
changing for a single element, (Changing the Style of a Single Element)
expanding and folder tree menus, (Indicating Expanded Branches in a Menu)
rendering modes and, (Detecting Quirks Mode and Standards Mode)
retrieving computed styles, (Retrieving the Computed Style of an Element)
styleSheets collection, (Creating a New Style Sheet)
sub-cookies, (Circumventing Browser Restrictions on the Number of Cookies you can Use)
subdomains and cookies, (Making a Cookie Accessible Only from a Specific Domain or Path)
submenus
arrow indicators, (Adding Arrows to Indicate the Presence of a Submenu)
constraining within windows, (Making Sure the Menus Stay Inside the Window)
expanded, (Indicating Expanded Branches in a Menu)
submission and form validation, (Stopping a Form Being Submitted Unless all its Fields are Valid), (Making Scripts Accessible to the Keyboard as well as the Mouse)
substring method, (Splitting a String into Substrings)
substrings, (Finding a Substring within a String), (Splitting a String into Substrings), (Making Scripts Run Faster)
switch menus (see expanding menus)
switch statements, (Checking for Unselected Radio Buttons), (Making Scripts Run Faster)
synchronous requests, (Retrieving Data Using XMLHttpRequest)
System Colors, CSS 2, (Making title Attribute Tooltips Display on Focus)

T

tab order and accessibility, (Making Scripts Accessible to the Keyboard), (Making Scripts Accessible to the Keyboard as well as the Mouse)
tab space character, (Including a Special Character in a String), (Optimizing Scripts for the Web)
tabIndex attribute, (Making Scripts Accessible to the Keyboard), (Retrieving Data without Using XMLHttpRequest)
tabIndex property, (Making the Menus Display Over select Elements)
table sorting by column, (Sorting Tables by Column)
target attribute, (Opening Off-site Links in a New Window)
target elements, (Handling Events), (Displaying a Tooltip when you Mouse Over an Element)
ternary operators, (Making Scripts Run Faster)
compacting scripts, (Writing Scripts Using Less Code)
popup overflow example, (Using Popup Windows)
time comparison example, (Comparing Two Dates), (Formatting the Difference Between Dates)
test method, (Testing whether a String Matches a Regular Expression), (Making Scripts Run Faster)
text boxes and slider controls, (Making a Slider Control)
text fields
accessing, (Reading and Writing the Data in a Text Field)
auto-completing, (Creating an Auto-complete Text Field)
label location, (Printing Inline Error Messages when Validating a Form)
locating, (Reading and Writing the Data in a Text Field)
slider controls and, (Making a Slider Control)
validating mandatory, (Validating a Mandatory Text Field)
text manipulation, (Searching and Replacing Text using a Regular Expression), (Indexing an Array with Strings Instead of Numbers)
(see also string data type)
text nodes
checking for, (Accessing Elements)
creating, using the DOM, (Creating Elements and Text Nodes)
insertion options, (Creating Elements and Text Nodes)
removing or relocating, (Removing an Element or Text Node)
Safari browser events from, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
text selections, (Reordering a List Using Drag-and-drop Functionality), (Controlling Text Selections)
text sizes, tooltips, (Making title Attribute Tooltips Display on Focus)
text-only browsers, (Making Scripts Accessible to Screen Readers)
textarea element, (Creating Editable Elements)
this variable, (Handling Events), (Writing an Object Oriented Script), (Creating Methods for an Object)
Safari bug, (Swapping One Image for Another)
threshold movement values, (Implementing Drag-and-drop Behavior), (Reordering a List Using Drag-and-drop Functionality)
time based data (see Date object) (see image-based clock)
timed effects, (Time and Motion), (Using setTimeout and setInterval)
timers
open and close timers, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
timer IDs, (Using setTimeout and setInterval)
timing functions (see setInterval function) (see setTimeout function)
timing out scripts, (Making Scripts Run Faster)
title attribute, (Making a Style Sheet Switcher), (Making a Style Sheet Switcher that Handles Multiple Media Types)
tooltips and, (Displaying a Tooltip when you Mouse Over an Element), (Making title Attribute Tooltips Display on Focus)
title element error reports, (Debugging a Script)
toElement property, IE, (Making a DHTML Menu Accessible to the Keyboard)
toGMTString method, (Getting the Date and Time)
toLocaleString method, (Getting the Date and Time)
toLowerCase method, (Transforming the Character Case of a String), (Reading and Modifying an Existing Style Sheet)
tooltips
accessibility and, (Making title Attribute Tooltips Display on Focus)
displaying on mouseover, (Displaying a Tooltip when you Mouse Over an Element)
Safari browser, (Making title Attribute Tooltips Display on Focus)
toString method, (Converting a Number to a String), (Formatting Currency Values), (Getting the Date and Time)
toUpperCase method, (Transforming the Character Case of a String)
transition effects
clip-based transitions, (Creating Clip-based Transition Effects)
curtain effect, (Creating Clip-based Transition Effects)
shrinking effect, (Creating Clip-based Transition Effects)
squashing an object, (Creating Clip-based Transition Effects)
treeMenu function, (Making a Folder Tree or Expanding Menu), (Opening the Current Sub-branch Automatically)
try/catch structures, (Debugging a Script), (Retrieving Data Using XMLHttpRequest), (Creating Custom Dialogs (Such as Popup Forms))
24-hour clock, (Formatting the Time into a 12- or 24-hour Clock)
type attribute, script tag, (Adding a Script to a Page)
type conversion testing, (Strict Warnings)
typeof command, (Getting Multiple Scripts to Work on the Same Page), (Strict Warnings)
alert functions and, (Debugging a Script)
feature detection using, (Identifying Support for a Particular Feature)
isNaN function and, (Converting a String to a Number)
string-indexed arrays, (Indexing an Array with Strings Instead of Numbers)

U

undefined data type, (Getting Multiple Scripts to Work on the Same Page)
underscores conversion to spaces, (Creating Methods for an Object)
unescape function, (Encoding a URL), (Writing Cookies), (Circumventing Browser Restrictions on the Number of Cookies you can Use)
uniqueID property, document object, (Identifying a Particular Browser)
unit normalization, (Retrieving the Computed Style of an Element)
Unobtrusive Flash Objects, (Detecting whether Flash is Installed in a Browser), (Using JavaScript with Flash)
unobtrusive scripting, (JavaScript Best Practices), (Separating Content from Behavior (Unobtrusive Scripting))
unordered lists
auto-complete text example, (Creating an Auto-complete Text Field)
drag-and-drop repositioning, (Implementing Drag-and-drop Behavior)
expanding menus from, (Making a Folder Tree or Expanding Menu)
menus using, (DHTML Menus and Navigation)
nesting and wellformedness, (DHTML Menus and Navigation)
URL removal with comments, (Optimizing Scripts for the Web)
URL-safe characters, (Encoding a URL)
usability
accessible DHTML menus, (Making a DHTML Menu Usable via the Keyboard)
drag-and-drop effects, (Implementing Drag-and-drop Behavior)
frames and, (Communicating Between Frames)
inline error messages, (Printing Inline Error Messages when Validating a Form)
menu repositioning and, (Making Sure the Menus Stay Inside the Window)
menu structure and, (Making Sure the Menus Stay Inside the Window)
menu timers and, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
online applications, (Building Web Applications with JavaScript)
open and close timers, (Adding Timers so the Menus Don’t Open and Close so Abruptly)
opening current menu branch, (Opening the Current Sub-branch Automatically)
popups and, (Using Popup Windows)
progress indicators, (Making a Progress Indicator)
screen reader hidden content, (Making Scripts Accessible to Screen Readers)
user agent strings, (Identifying Support for a Particular Feature), (Identifying a Particular Browser)
user interfaces
creating with DHTML, (Basic Dynamic HTML), (Basic Dynamic HTML)
differing GUI behaviors, (Making Scripts Accessible to the Keyboard)
drag-and-drop functionality, (Implementing Drag-and-drop Behavior)
screen readers, (Making Scripts Accessible to Screen Readers), (Making Scripts Accessible to Screen Readers)
UTC (Coordinated Universal Time), (Getting the Date and Time)
UTC epoch, (Getting the Date and Time), (Comparing Two Dates)

V

validating parsers, (Adding a Script to a Page)
validation, (Validating a Form with an Unknown Number of Fields)
(see also form validation)
email addresses, (Testing whether a String is a Valid Email Address), (Validating an Email Address Field)
numeric fields, (Validating a Numeric Field)
radio buttons, (Checking for Unselected Radio Buttons)
value property, (Reading and Writing the Data in a Text Field), (Reading and Setting the Value of a Select Box)
var keyword, (Understanding Scope)
variable scopes, (Understanding Scope)
closures, (Making an Image Fade in or out), (Handling Events), (Adding Timers so the Menus Don’t Open and Close so Abruptly), (Understanding Scope)
inner scopes, (Making a Drop-down or Fly-out Menu)
naming conflicts and, (Optimizing Scripts for the Web)
variables, (Optimizing Scripts for the Web)
(see also global variables)
compacting names, (Optimizing Scripts for the Web)
direct evaluation avoiding, (Writing Scripts Using Less Code)
dynamic and non-dynamic, (Making Scripts Run Faster)
nested functions and, (Understanding Scope)
warnings about, (Strict Warnings)
VBScript, (Communicating Between JavaScript and Flash)
vendor property, navigator object, (Identifying a Particular Browser)
vertical navigation bars, (Making a Drop-down or Fly-out Menu), (Making a DHTML Menu Accessible to the Keyboard)
vertical overflow, (Making Sure the Menus Stay Inside the Window)
vertically collapsing transitions, (Creating Clip-based Transition Effects)
viewport size, (Getting the Viewport Size (the Available Space inside the Window))
(see also page dimensions)
constraining menus within, (Making Sure the Menus Stay Inside the Window)
drop sheet positioning, (Creating Custom Dialogs (Such as Popup Forms))
tooltip positioning and, (Displaying a Tooltip when you Mouse Over an Element), (Making title Attribute Tooltips Display on Focus)
visibility property, (Making a Folder Tree or Expanding Menu)
custom dialog example, (Creating Custom Dialogs (Such as Popup Forms))
drag-and-drop reordering, (Reordering a List Using Drag-and-drop Functionality)
tooltips, (Displaying a Tooltip when you Mouse Over an Element)

W

W3C (World Wide Web Consortium)
addEventListener method, (Getting Multiple Scripts to Work on the Same Page)
data transmission specifications and, (Retrieving Data Using XMLHttpRequest)
device-independent event handlers, (Using Device-independent Event Handlers)
DOM definition, (Navigating the Document Object Model)
event listeners, (Handling Events)
event model, (Handling Events)
warnings, (Strict Warnings), (Making Scripts Run Faster)
WCAG (Web Content Accessibility Guidelines), (Using Device-independent Event Handlers), (Making Scripts Accessible to the Keyboard as well as the Mouse)
weighted random selections, (Displaying an Image at Random)
white-space property, (Making a Scrolling News Ticker)
whitespace, (Adding and Removing Multiple Classes to/from an Element)
(see also spaces)
code efficiency and, (Optimizing Scripts for the Web)
detection, (Validating a Mandatory Text Field)
necessary whitespace, (Optimizing Scripts for the Web)
regular expression check for, (Sorting Tables by Column)
removal from node trees, (Making a DHTML Menu Usable via the Keyboard)
source code obfuscation and, (Hiding JavaScript Source Code)
XMLHttpRequest object and, (Retrieving Data Using XMLHttpRequest)
whitespace nodes, DOM, (Accessing Elements)
wildcard characters, (Creating a Regular Expression)
window area (see viewport size)
window object properties, (Working with Windows and Frames)
windowed controls, (Making the Menus Display Over select Elements)
windows, (Using Popup Windows)
(see also popups)
aggressive scripting, (Working with Windows and Frames)
constraining menus within, (Making Sure the Menus Stay Inside the Window)
opening links in new , (Opening Off-site Links in a New Window)
primary, and popup size, (Using Popup Windows)
Windows Eyes 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)
browser compatibility, (Making Scripts Accessible to Screen Readers)
DHTML Accessibility project, (Making Scripts Accessible to the Keyboard)
Windows IE (see Internet Explorer for Windows)
word boundary character, (Adding and Removing Multiple Classes to/from an Element)
WYSIWYG editor, (Creating Editable Elements), (Controlling Text Selections)

X

XHTML
comments and, (Adding a Script to a Page)
forms collection and, (Reading and Writing the Data in a Text Field)
navigation list element, (DHTML Menus and Navigation)
XLink, (Working with Windows and Frames)
XML, (Reading and Writing the Data in a Text Field)
(see also AJAX)
form element access, (Reading and Writing the Data in a Text Field)
MIME types, (Creating Elements and Text Nodes)
XMLHttpRequest object, (Retrieving Data Using XMLHttpRequest), (Retrieving Data Using XMLHttpRequest)
application development frameworks, (Retrieving Data Using XMLHttpRequest)
feature detection example, (Identifying Support for a Particular Feature)
headers, (Retrieving Data Using XMLHttpRequest)
iframe alternative, (Retrieving Data without Using XMLHttpRequest)
methods, (Retrieving Data Using XMLHttpRequest)
notifying users of updates, (Making Scripts Accessible to Screen Readers)
properties, (Retrieving Data Using XMLHttpRequest)
Safari browser support, (Identifying a Particular Browser)

Z

z-order, (Making a Drop-down or Fly-out Menu), (Making the Menus Display Over select Elements)
zeroes, (Formatting Currency Values), (Converting Numbers to Ordinals (-st, -nd, -rd, -th))

 

About SitePoint

SitePoint specializes in publishing fun, practical and easy-to-understand content for Web professionals. Visit sitepoint.com to access our books, newsletters, articles and community forums.

SitePoint Books

  • advocate best practice techniques
  • lead you through practical examples
  • provide working code for your web site
  • make learning easy and fun

100% Money Back Guarantee