Product Overview

DHTML Utopia:
Modern Web Design Using JavaScript & DOM

A

absolute paths, XPath, (Introducing XPath)
absolute positioning of submenus, (Creating Menu Content)
accessibility of XMLHTTP and DHTML, (Remote Scripting Methods)
ActiveX controls, (Remote Scripting Methods)
addEvent function, (About Elements and Events)
highlighting table rows, (Smart Uses of Events)
scrollImage example, (Sniffing at Work: scrollImage)
smartlink.js example, (Smart Uses of Events)
addEventListener method, (About Elements and Events)
IE equivalent, (About Elements and Events)
scrollImage example, (Sniffing at Work: scrollImage)
addFriend function, “free beer” form, (Making an Expanding Form)
addListeners function, (About Elements and Events), (Smart Uses of Events), (Smart Uses of Events)
AJAX applications, (Remote Scripting Methods)
Andrew, Scott, (About Elements and Events)
(see also addEvent function)
animated GIFs, (Scriptless Animation with GIFs)
animation, (Animation), (Movement Example: Rising Tooltips)
animation involving movement, (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips)
appearance change animation, (Animation Basics), (Animation Basics)
clock example, (Animation Basics)
JavaScript suitability for multiple animations, (Making the Menu Work)
modeling animation states, (Movement Example: Rising Tooltips)
multi-level animated menu project, (Advanced Concepts and Menus), (Making the Menu Work), (Making the Menu Work)
response to mouseouts after starting, (Making the Menu Work)
rising tooltips example, (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips)
scriptless animation, (Scriptless Animation with GIFs)
text fading example, (Animation Basics)
anonymous functions, (Animation Basics), (Animation Basics)
anonymous callbacks, (Remote Scripting Methods), ( Example: Managing Files), (Example: Parsing RSS Feeds)
type-ahead drop-down list example, (Improving Form Usability)
APIs (application programming interfaces), calling with XML-RPC, ( Using XML-RPC), ( Using XML-RPC)
apostrophe escaping, (Animation Basics)
appendChild method, (Bigger DOM Tree Changes), (Bigger DOM Tree Changes)
“free beer” example form, (Making an Expanding Form)
innerHTML alternative, (Remote Scripting Methods)
aqtree3 script, ( Example: Managing Files)
arrays
beer guide example, (Drawing Code from Servers)
clippingRectangle array, (Making the Menu Work)
getElementsByTagName method, (Walking DOM Trees)
listing username alternatives, (Remote Scripting Methods)
submitted fields in autoform example, (Remote Scripting Methods)
zero-based indexing, (Introducing XPath)
ascendDOM function, (Smart Uses of Events)
Ashley, Brent, (Remote Scripting Methods)
(see also RSLite library)
associative arrays, (Simple Client-Side Validation)
asynchronous operation
fetching RSS feeds, (Example: Parsing RSS Feeds)
RSLite library, (Remote Scripting Methods)
Sarissa library requests, (Remote Scripting Methods)
attachEvent method, (About Elements and Events), (Sniffing at Work: scrollImage), (Making the Menu Work)
attributes, (Making the Menu Work)
(see also properties)
changing with JavaScript, (What to do with Elements)
event names and, (About Elements and Events)
non-HTML, (Making Modular Image Rollovers), (Example: Parsing RSS Feeds)
XPath node selection by values, (Introducing XPath)
autocompletion widget, (Improving Form Usability)
autoforms example, (Remote Scripting Methods), (Remote Scripting Methods)
indirect submission, (Remote Scripting Methods)
JavaScript listing, (Remote Scripting Methods)
serving the page, (Remote Scripting Methods)
style sheet, (Remote Scripting Methods)

B

background color and mouseover effects, (Creating Menu Content), ( Example: Managing Files)
backspace key, (Improving Form Usability)
bandwidth abuse, (Example: Parsing RSS Feeds)
beer guide example, (Drawing Code from Servers), (Drawing Code from Servers)
(see also “free beer” example form)
display, (Drawing Code from Servers), (Drawing Code from Servers), (Drawing Code from Servers)
fetching and running JavaScript, (Drawing Code from Servers)
fetching HTML from the server, (Drawing Code from Servers)
JavaScript code, (Drawing Code from Servers), (Drawing Code from Servers)
JavaScript method sequence, (Drawing Code from Servers), (Drawing Code from Servers)
PHP script, (Drawing Code from Servers)
planning the DHTML pages, (Drawing Code from Servers)
style sheet, (Drawing Code from Servers), (Drawing Code from Servers), (Drawing Code from Servers)
traditional HTML approach, (Drawing Code from Servers)
billboard effect, animated menu, (Making the Menu Work)
Blogger API, ( Using XML-RPC)
as example of XML-RPC, ( Using XML-RPC)
specification, ( Using XML-RPC)
weblog post editor, ( Using XML-RPC)
blogroll example, (Example: Parsing RSS Feeds), (Example: Parsing RSS Feeds)
display, (Example: Parsing RSS Feeds), (Example: Parsing RSS Feeds)
expandable and collapsible lists, (Example: Parsing RSS Feeds)
HTML content, (Example: Parsing RSS Feeds)
RSS feeds and, (Example: Parsing RSS Feeds)
specifying script actions, (Example: Parsing RSS Feeds)
blur events and validation, (Simple Client-Side Validation), (Simple Client-Side Validation)
<body> element, onerror handler, (Handling Errors)
Boodman, Aaron, (Improving Form Usability), ( Example: Managing Files)
(see also DOM-Drag library)
bracket notation
assessing support without calling methods, (Modern DOM Feature Sniffing)
passing references without calling functions, (About Elements and Events)
browser detection, (Old-Fashioned Browser Sniffing), (Modern DOM Feature Sniffing)
(see also feature sniffing)
mouse position problem and, (Sniffing at Work: scrollImage)
browser support
assessing DHTML feature support, (Detecting Browser Features)
assessing DOM method support, (Modern DOM Feature Sniffing)
for the cellIndex property, (Smart Uses of Events)
for character codes, (About Elements and Events)
for clientX and clientY, (Sniffing at Work: scrollImage)
for CSS, (Adding CSS), (Further Reading)
for the CSS clip property, (Making the Menu Work)
for the DOM, (Making Modular Image Rollovers), (Making Modular Image Rollovers), (Detecting Browser Features)
for framesets, (Problems with Frames)
for hidden <iframe>s, (Remote Scripting Methods)
for JavaScript, (Detecting Browser Features)
for the keypress event, (About Elements and Events)
for XMLHTTP, (Remote Scripting Methods)
for XPath, (Introducing XPath)
“browser wars”, (The Origins of the DOM)
browsers, (Smart Uses of Events), (Remote Scripting Methods)
(see also Internet Explorer)
(see also Mozilla browsers)
(see also Netscape browsers)
(see also Safari browser)
clock animation example portability, (Animation Basics)
cross-browser events tabulated, (About Elements and Events)
cross-browser identification of clicked links, (Smart Uses of Events)
cross-browser Sarissa library, (Remote Scripting Methods), (Introducing XPath)
detecting features of, (Detecting Browser Features)
evaluating script downloads, (Improving Form Usability)
Opera browser, (Sniffing at Work: scrollImage)
portable event listeners, (About Elements and Events)
rich-text editors, (Improving Form Usability)
bubbling (see event bubbling)
bugs
CSS parsers, (Adding CSS), (Further Reading)
IE list item bug, (Creating Menu Content), (Drawing Code from Servers)
IE memory leaks, (Making the Menu Work)

C

calendar popups, (Improving Form Usability)
callback methods, (Remote Scripting Methods), (Example: Parsing RSS Feeds)
(see also anonymous functions)
autoform example, (Remote Scripting Methods)
drag-and-drop file manager, ( Example: Managing Files), ( Example: Managing Files)
name resolution example, (Remote Scripting Methods)
RSLite failure callbacks, (Remote Scripting Methods)
Sarissa library requests, (Remote Scripting Methods)
username checking example, (Remote Scripting Methods)
Camel Casing (see InterCaps format)
Camino browser (see Mozilla browsers)
cancelBubble property, (About Elements and Events), (Simple Client-Side Validation)
case sensitivity, (Adding JavaScript), (Smart Uses of Events), (Improving Form Usability)
cellIndex property, (Smart Uses of Events)
change event listeners
autoforms example, (Remote Scripting Methods)
name resolution example, (Remote Scripting Methods)
username checking example, (Remote Scripting Methods)
character code support, (About Elements and Events)
checkValid method, validation example, (Simple Client-Side Validation), (Simple Client-Side Validation)
checkValidSubmit method, validation example, (Simple Client-Side Validation)
childNodes property, (Walking DOM Trees), (What to do with Elements)
circular references, (Making the Menu Work)
class attribute, HTML, JavaScript equivalent, (What to do with Elements)
className property
indexOf method, (Making Modular Image Rollovers)
replace method, (Smart Uses of Events)
clearInterval function, (Animation Basics)
clearTimeout function, (Animation Basics), (Making the Menu Work)
client-side validation, (Simple Client-Side Validation), (Simple Client-Side Validation)
error messages, (Simple Client-Side Validation)
example JavaScript listing, (Simple Client-Side Validation)
example screenshot, (Simple Client-Side Validation)
example style sheet, (Simple Client-Side Validation)
limitations, (Forms and Validation)
on form submission, (Simple Client-Side Validation)
submit event listeners, (Simple Client-Side Validation)
when to apply, (Simple Client-Side Validation)
clientX and clientY properties, (Sniffing at Work: scrollImage)
clip property, CSS, (Making the Menu Work), (Making the Menu Work)
clippingRectangle array, (Making the Menu Work)
clock animation example, (Animation Basics)
cloneNode method, (Bigger DOM Tree Changes)
closures, creating, (Making the Menu Work)
code editors, (Adding JavaScript)
comma terminators, library object methods, (Movement Example: Rising Tooltips)
container tags, HTML, (HTML Starting Points)
contentDocument property, (Remote Scripting Methods)
contentWindow property, (Remote Scripting Methods)
control characters, (Improving Form Usability)
cookies
hidden cookie updates, (Remote Scripting Methods)
size limits, (Remote Scripting Methods)
country name drop-down lists, (Improving Form Usability)
createElement method, (Bigger DOM Tree Changes)
innerHTML alternative, (Remote Scripting Methods)
testing browser support for, (Modern DOM Feature Sniffing)
createTextNode method, (Bigger DOM Tree Changes)
cross-site scripting, (Reasons for Form Validation)
CSS (Cascading Style Sheets), (Adding CSS), (Adding CSS)
bugs and hacks, (Adding CSS)
changing style properties, (What to do with Elements)
dynamic menus using, (Making the Menu Work)
further reading, (Further Reading)
globe animation example, (Scriptless Animation with GIFs)
highlighting table rows, (Smart Uses of Events), (Drawing Code from Servers)
multi-level animated menu project, (Creating Menu Content), (Creating Menu Content), (Creating Menu Content), (Making the Menu Work)
rising tooltips animation example, (Movement Example: Rising Tooltips)
z-index stacking problem, CSS2, (Movement Example: Rising Tooltips)
currentTarget property, (Making the Menu Work)
cursor location, ( Example: Managing Files)
(see also mouseover effects)
highlighting table rows, (Smart Uses of Events)
Mozilla browser drop targets, ( Example: Managing Files)
cursor movement and image scrolling, (Sniffing at Work: scrollImage)
custom listener functions, (Making the Menu Work)

D

date entry, calendar popups, (Improving Form Usability)
debugging tools, JavaScript, (Adding JavaScript)
default actions, (About Elements and Events), (About Elements and Events)
(see also preventDefault method)
delegation, (Making the Menu Work)
dialog box error message display, (Simple Client-Side Validation), (Simple Client-Side Validation)
dictionaries, (Simple Client-Side Validation)
dimensionless numbers, (What to do with Elements)
dimensions, temporarily visible objects, (Making the Menu Work)
directories, (Example: Parsing RSS Feeds)
(see also blogroll example)
expandable and collapsible folder lists, ( Example: Managing Files), ( Example: Managing Files), (Example: Parsing RSS Feeds)
display property, CSS, (What to do with Elements)
<div> tags, rising tooltips animation, (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips)
DOCTYPE declarations, (HTML Starting Points)
document fragments, (Bigger DOM Tree Changes)
document.all and document.layers properties, (Improving Form Usability)
document.getElement* methods (see getElement* methods)
DOM (Document Object Model), (The Document Object Model)
adding and removing elements, (Bigger DOM Tree Changes), (Bigger DOM Tree Changes)
applicability to XML, (DOM Alternatives: XPath)
degrees of browser support, (Detecting Browser Features)
event handling, (About Elements and Events)
history, (The Origins of the DOM)
Microsoft and Mozilla references, (What to do with Elements)
mouse position specification, (Sniffing at Work: scrollImage)
superiority of XPath for XML access, (DOM Alternatives: XPath), (Introducing XPath)
testing for the existence of features, (Modern DOM Feature Sniffing), (Remote Scripting Methods)
XPath alternative, (DOM Alternatives: XPath), (Example: Parsing RSS Feeds)
DOM-Drag library, ( Example: Managing Files), ( Example: Managing Files)
drag-and-drop file manager, ( Example: Managing Files), ( Example: Managing Files)
dropping elements onto targets, ( Example: Managing Files)
expanding and collapsing lists, ( Example: Managing Files)
handling drag-and-drop events, ( Example: Managing Files)
highlighting drop targets, ( Example: Managing Files)
HTML, ( Example: Managing Files)
identifying drop targets, ( Example: Managing Files)
implementing drag-and-drop, ( Example: Managing Files)
library objects, ( Example: Managing Files)
PHP script, ( Example: Managing Files), ( Example: Managing Files)
Sarissa library use, ( Example: Managing Files)
screenshot, ( Example: Managing Files)
server control commands, ( Example: Managing Files)
specifying, ( Example: Managing Files)
style sheet, ( Example: Managing Files)
drop-down lists, type-ahead, (Improving Form Usability)

E

e parameter, (About Elements and Events)
E4X standard, (Remote Scripting Methods)
editors
code, (Adding JavaScript)
rich-text, (Improving Form Usability)
elements, HTML
adding and removing, (Bigger DOM Tree Changes), (Bigger DOM Tree Changes)
changing attributes, (What to do with Elements)
copying, (Bigger DOM Tree Changes)
creating, (Bigger DOM Tree Changes)
draggable, ( Example: Managing Files)
manipulating with JavaScript/DOM, (What to do with Elements)
possible events tabulated, (About Elements and Events)
sharing event listeners between, (About Elements and Events), (About Elements and Events)
elements, XML, selecting, (Introducing XPath)
email nicknames (see name resolution example)
empty <div> elements, (Movement Example: Rising Tooltips)
empty strings, (Modern DOM Feature Sniffing)
encapsulation (see library objects)
error handling, (Handling Errors)
error messages
client-side validation and, (Simple Client-Side Validation)
display techniques, (Simple Client-Side Validation)
displaying multiple, (Simple Client-Side Validation)
drag-and-drop file manager, ( Example: Managing Files)
hiding from users, (Detecting Browser Features)
name resolution example, (Remote Scripting Methods)
pre-submission checks, (Simple Client-Side Validation)
summary error messages, (Simple Client-Side Validation)
escaping quotes and apostrophes, (Animation Basics)
eval function, JavaScript, (Drawing Code from Servers), (Drawing Code from Servers)
event bubbling, (About Elements and Events)
(see also stopPropagation method)
Event Cache script, (Making the Menu Work)
event capture, (About Elements and Events)
event handlers, (Making Modular Image Rollovers), (About Elements and Events)
(see also event listeners)
rollover script example, (Making Modular Image Rollovers)
event handling
DOM specification, (About Elements and Events)
event bubbling and default actions, (About Elements and Events)
event targets, (About Elements and Events)
smarter uses, (Smart Uses of Events)
W3C approach, (About Elements and Events)
event listeners, (About Elements and Events)
assigning on page load, (About Elements and Events)
change event listeners, (Remote Scripting Methods), (Remote Scripting Methods), (Remote Scripting Methods)
client-side validation and, (Simple Client-Side Validation)
cross-browser operation, (About Elements and Events)
custom listener functions, (Making the Menu Work)
highlighting table rows, (Smart Uses of Events)
opening links in a new window, (Smart Uses of Events)
portable detection code, (About Elements and Events), (About Elements and Events)
reusing across targets, (About Elements and Events)
submit events, (Simple Client-Side Validation)
testing browser support for, (Modern DOM Feature Sniffing)
tooltips animation example, (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips)
event model, W3C, (About Elements and Events), (Making the Menu Work)
event objects
IE storage, (About Elements and Events)
methods of passing, (Sniffing at Work: scrollImage)
properties tabulated, (About Elements and Events), (About Elements and Events)
event targets, (About Elements and Events), (About Elements and Events)
methods of obtaining, (Sniffing at Work: scrollImage)
events
linking code to, (About Elements and Events)
modern naming of, (About Elements and Events), (About Elements and Events)
exception handling, ( Using XML-RPC)
expanding form example, (Making an Expanding Form)

F

feature sniffing, (Modern DOM Feature Sniffing)
portabledetect.html example, (About Elements and Events)
scrollImage example, (Sniffing at Work: scrollImage), (Sniffing at Work: scrollImage)
testing for non-DOM features, (Modern DOM Feature Sniffing)
file manager example (see drag-and-drop file manager)
filter property, ( Example: Managing Files)
findPosX and findPosY functions, (Sniffing at Work: scrollImage)
Firefox (see Mozilla browsers)
firstChild property, (Walking DOM Trees), (What to do with Elements)
flicker, (Making the Menu Work), (Making the Menu Work)
flyover help (see tooltip animation example)
folders, expandable and collapsible lists, ( Example: Managing Files), ( Example: Managing Files), (Example: Parsing RSS Feeds)
form validation, (Forms and Validation), (Client-Server Coordination)
cancelling submission on failure, (Simple Client-Side Validation)
forms design
example expanding form, (Making an Expanding Form)
real-time forms, (Remote Scripting Methods)
usability improvement, (Improving Form Usability), (Improving Form Usability)
frames, (Problems with Frames), ( Example: Managing Files)
“free beer” example form, (Making an Expanding Form)
function outlines
beer guide example, (Drawing Code from Servers)
highlighting table rows, (Smart Uses of Events)
smartlink event listener example, (Smart Uses of Events)
functions
assessing support without calling, (Modern DOM Feature Sniffing)
passing by name, (Animation Basics)
passing references without calling, (About Elements and Events)

G

Gecko-based browsers (see Mozilla browsers)
getElementBy* methods in script downloads, (Improving Form Usability)
getElementById method, (Walking DOM Trees)
assessing support for, (Modern DOM Feature Sniffing)
limitations, (Bigger DOM Tree Changes)
testing browser support for, (Modern DOM Feature Sniffing)
getElementsBy* methods for walking DOM trees, (Walking DOM Trees)
getElementsByName method, (Walking DOM Trees), (Remote Scripting Methods)
getElementsByTagName method, (Walking DOM Trees), (Walking DOM Trees)
scrollImage example, (Sniffing at Work: scrollImage)
testing browser support for, (Making Modular Image Rollovers), (Modern DOM Feature Sniffing)
XPath alternative, (Introducing XPath)
global variables, (Animation Basics), (Animation Basics)
globe animation example, (Scriptless Animation with GIFs)

H

hacks
accessing variables within passed functions, (Animation Basics)
CSS parser workarounds, (Adding CSS), (Further Reading)
XMLHTTP distinguished from, (Remote Scripting Methods)
handleLink function, smartlink example, (Smart Uses of Events)
handleValidity method, validation example, (Simple Client-Side Validation)
hasFeature method, (Detecting Browser Features)
hashes, (Simple Client-Side Validation)
<head> element, as script location, (Adding JavaScript)
headings, styling, (Adding CSS)
hidden objects
hidden <iframe> elements, (Remote Scripting Methods)
hidden cookie updates, (Remote Scripting Methods)
hidden <iframe> elements, (Remote Scripting Methods)
hidden image updates, (Remote Scripting Methods)
hidden list items, (Example: Parsing RSS Feeds)
hidden proxy elements, ( Example: Managing Files), ( Example: Managing Files)
hideMenu method, sliding-menu.js, (Making the Menu Work)
highlighting
beer guide example, (Drawing Code from Servers)
drop targets, ( Example: Managing Files), ( Example: Managing Files)
table rows, (Smart Uses of Events)
history lists and replace methods, (Remote Scripting Methods)
hotspots, ( Example: Managing Files)
HTML, (About Elements and Events)
(see also elements, HTML)
dynamic generation with innerHTML, (Remote Scripting Methods)
dynamic generation, beer guide example, (Drawing Code from Servers)
dynamic generation, drag-and-drop file manager , ( Example: Managing Files)
semantic HTML, (HTML Starting Points), (Creating Menu Content)
validity, (HTML Starting Points), (HTML Starting Points), (What is the DOM?), (Example: Parsing RSS Feeds)
HTMLArea editor, (Improving Form Usability)
htmlFor property, (Simple Client-Side Validation)
HTTP 204 piggybacks, (Remote Scripting Methods)
HTTP requests, Sarissa support, (Remote Scripting Methods)
hyperlinks (see links)

I

icons, (Remote Scripting Methods), ( Example: Managing Files)
id attribute, HTML, (Walking DOM Trees)
IE (see Internet Explorer)
<iframe> elements, (Remote Scripting Methods), (Remote Scripting Methods)
autoforms example, (Remote Scripting Methods), (Remote Scripting Methods)
data exchange example display, (Remote Scripting Methods)
hidden <iframe>s, (Remote Scripting Methods), (Remote Scripting Methods)
overcoming the shortcomings of, (Remote Scripting Methods)
replacing, using script, (Remote Scripting Methods)
image rollovers (see rollover script example)
images
calculating screen positions, (Sniffing at Work: scrollImage)
hidden image updates, (Remote Scripting Methods)
replacing, using the src attribute, (Making Modular Image Rollovers)
scrollImage preview example, (Sniffing at Work: scrollImage)
index numbering, XPath and JavaScript arrays, (Introducing XPath)
indexOf method, className property, (Making Modular Image Rollovers)
infinitely nested forms, (Remote Scripting Methods)
inline error messages, (Simple Client-Side Validation)
innerHTML property, (Animation Basics), (Remote Scripting Methods)
insertBefore method, (Bigger DOM Tree Changes)
InterCaps format, (What to do with Elements)
Internet Explorer
attaching event listeners, (About Elements and Events)
CSS support, (Adding CSS)
DOM-supporting browsers and, (Making Modular Image Rollovers)
list item bug, (Creating Menu Content), (Drawing Code from Servers)
memory leak problem, (Making the Menu Work)
origins of XMLHTTP in, (Remote Scripting Methods)
rich-text editor, (Improving Form Usability)
support for :hover pseudo-class, (Making the Menu Work)
support for DOM event model, (Making the Menu Work)
support for XPath, (Introducing XPath)
invisible objects (see hidden objects)
iterating through link elements, (Making Modular Image Rollovers)

J

Java applets, (Remote Scripting Methods)
JavaScript
adding arbitrary properties, (Movement Example: Rising Tooltips), (Making the Menu Work)
changing attributes with, (What to do with Elements)
code positioning, (About Elements and Events)
debugging tools, (Adding JavaScript)
degrees of browser support, (Detecting Browser Features)
DHTML encapsulation, (Movement Example: Rising Tooltips)
evaluating script downloads, (Improving Form Usability)
exception handling, ( Using XML-RPC)
further reading, (Further Reading)
<iframe> use with, (Remote Scripting Methods)
passing code as a string, (Animation Basics), (Animation Basics)
PHP generation of, (Remote Scripting Methods)
remote scripting, (Remote Scripting), (Remote Scripting)
role in DHTML, (Adding JavaScript), (Adding JavaScript)
running from the server, (Drawing Code from Servers)
sharing between multiple pages, (Simple Client-Side Validation)
testing for non-DOM features, (Modern DOM Feature Sniffing)
URL requests using XMLHTTP, (Remote Scripting Methods)
Web services restrictions, ( Using XML-RPC)
XML-RPC clients, ( Using XML-RPC)
JavaScript Console (Mozilla), (Adding JavaScript)
JavaScript libraries, ( Example: Managing Files), ( Example: Managing Files)
(see also Sarissa library)
aqtree3, ( Example: Managing Files)
DOM-Drag, ( Example: Managing Files), ( Example: Managing Files)
jitter, (Making the Menu Work)
join method, errText array, (Simple Client-Side Validation)
jsolait XML-RPC client, ( Using XML-RPC)

K

keyCode property, (About Elements and Events), (Improving Form Usability)
keypress events
default actions and, (About Elements and Events)
status of keyup and, (About Elements and Events), (Improving Form Usability)
Koch, Peter-Paul, (Sniffing at Work: scrollImage), (Sniffing at Work: scrollImage), (Improving Form Usability)

L

<label> element, HTML, uses, (Simple Client-Side Validation), (Improving Form Usability)
lastChild property, (Walking DOM Trees)
late binding, (Modern DOM Feature Sniffing)
leaf nodes, (Walking DOM Trees)
legacy scripting techniques, (Improving Form Usability)
length property, childNodes array, (Walking DOM Trees)
<li> tags, HTML, (Creating Menu Content), (Example: Parsing RSS Feeds)
(see also <rdf:li> tags)
(see also nested lists)
drag-and-drop file manager, ( Example: Managing Files)
IE list item bug, (Creating Menu Content), (Drawing Code from Servers)
nested lists, (Creating Menu Content)
semantic markup, (HTML Starting Points)
library objects, (Movement Example: Rising Tooltips)
autoforms example, (Remote Scripting Methods)
benefits of object-based programming, (Making the Menu Work)
blogroll example, (Example: Parsing RSS Feeds)
client-side validation example, (Simple Client-Side Validation)
drag-and-drop file manager, ( Example: Managing Files)
form validation example, (Simple Client-Side Validation)
multi-level animated menu project, (Making the Menu Work)
name resolution example, (Remote Scripting Methods)
nesting, for validation, (Simple Client-Side Validation)
regular expression sets in, (Simple Client-Side Validation)
type-ahead drop-down list example, (Improving Form Usability)
username checking example, (Remote Scripting Methods)
weblog post editor, ( Using XML-RPC)
links
background color and activity, (Creating Menu Content)
globe animation example, (Scriptless Animation with GIFs)
identifying clicked links, (Smart Uses of Events)
to <iframe> targets, (Remote Scripting Methods)
iterating through, (Making Modular Image Rollovers)
layout, (HTML Starting Points)
opening in a new window, (Smart Uses of Events)
list items (see <li> tags, HTML)
load event, assigning listeners, (About Elements and Events)
lowercase conversion, (Smart Uses of Events), (Improving Form Usability)

M

Macintosh, IE5 event handling problems, (About Elements and Events)
managing files (see drag-and-drop file manager)
maps, (Simple Client-Side Validation)
match method for regular expressions, (Simple Client-Side Validation)
memory leaks, (Making the Menu Work)
menus, (Advanced Concepts and Menus), (Creating Menu Content)
(see also multi-level animated menu project)
(see also submenus)
scriptless, (Making the Menu Work)
methods, (Modern DOM Feature Sniffing), (Remote Scripting Methods)
(see also callback methods)
(see also functions)
termination in library objects, (Movement Example: Rising Tooltips)
testing for the existence of, (Modern DOM Feature Sniffing)
Meyer, Eric, pure CSS menus, (Making the Menu Work)
Microsoft Corporation, (What to do with Elements)
(see also Internet Explorer)
DOM element reference, (What to do with Elements)
modular code, (Making Modular Image Rollovers), (Making Modular Image Rollovers)
mouse position, scrolling and the DOM specification, (Sniffing at Work: scrollImage)
mouseout event listeners, (Making the Menu Work)
introducing a delay, (Making the Menu Work)
proxy elements, ( Example: Managing Files), ( Example: Managing Files)
rollover script example, (Making Modular Image Rollovers)
tooltip animation example, (Animation Basics), (Movement Example: Rising Tooltips)
mouseout events
running animation response to, (Making the Menu Work)
mouseover effects, (Making Modular Image Rollovers)
(see also rollover scripts)
multi-level animated menu project, (Creating Menu Content), (Making the Menu Work)
scrollImage example, (Sniffing at Work: scrollImage)
tooltips animation example, (Movement Example: Rising Tooltips)
using a:hover, (Scriptless Animation with GIFs), (Creating Menu Content)
mouseover event listeners, (Making the Menu Work)
proxy elements, ( Example: Managing Files), ( Example: Managing Files)
rising tootips animation, (Movement Example: Rising Tooltips)
rollover script example, (Making Modular Image Rollovers)
tooltip animation example, (Animation Basics), (Movement Example: Rising Tooltips)
mouseover events
drop targets in Mozilla browsers, ( Example: Managing Files)
moveLinks method, rising tooltips animation, (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips)
Mozilla browsers
clock animation example portability, (Animation Basics)
DOM element reference, (What to do with Elements)
drop target mouseover problem, ( Example: Managing Files)
E4X standard, (Remote Scripting Methods)
JavaScript debugging, (Adding JavaScript)
support for XMLHTTP, (Remote Scripting Methods)
support for XPath, (Introducing XPath)
multi-level animated menu project, (Advanced Concepts and Menus), (Making the Menu Work)
adding animation, (Making the Menu Work)
avoiding flicker, (Making the Menu Work)
creating the HTML, (Creating Menu Content)
CSS styled menus screenshot, (Creating Menu Content), (Creating Menu Content), (Creating Menu Content)
JavaScript code, (Making the Menu Work), (Making the Menu Work)
unstyled content screenshot, (Creating Menu Content)

N

name resolution example, (Remote Scripting Methods)
(see also username checking example)
PHP script, (Remote Scripting Methods)
resolve method, (Remote Scripting Methods)
resolve_callback method, (Remote Scripting Methods)
namespace clashes (see library objects)
namespaces, XML, (Example: Parsing RSS Feeds)
naming conventions
events, (About Elements and Events), (About Elements and Events), (About Elements and Events)
JavaScript properties, (What to do with Elements)
library objects, (Movement Example: Rising Tooltips)
navigation (see links) (see multi-level animated menu project)
nesting
arrays, PHP, (Client-Server Coordination)
expandable and collapsible lists, ( Example: Managing Files), ( Example: Managing Files), (Example: Parsing RSS Feeds)
HTML elements and DOM representations, (What is the DOM?)
HTML elements and validity, (HTML Starting Points)
infinitely nested forms, (Remote Scripting Methods)
lists, multi-level animated menu, (Creating Menu Content)
literal objects, (Simple Client-Side Validation)
nested forms design, (Remote Scripting Methods)
selecting nested elements with XPath, (Introducing XPath)
Netscape browsers
history of the DOM and, (The Origins of the DOM)
Netscape 6 and hidden <iframe>s, (Remote Scripting Methods)
nextSibling property, (Movement Example: Rising Tooltips)
nodes, (What to do with Elements)
(see also elements)
DOM representation of HTML, (What is the DOM?)
parent and child, (Walking DOM Trees)
XPath view of XML documents, (Introducing XPath)
nodeType property and Safari, (Movement Example: Rising Tooltips)
nodeValue property, (What to do with Elements)

O

object detection
animation error handling and, (Handling Errors)
DOM methods, (Making Modular Image Rollovers), (Modern DOM Feature Sniffing), (Modern DOM Feature Sniffing), (Modern DOM Feature Sniffing), (Remote Scripting Methods)
Sarissa library, (Remote Scripting Methods), ( Example: Managing Files)
window.event object, (About Elements and Events)
object literals (see library objects)
object-based programming, (Making the Menu Work)
offset properties, (Modern DOM Feature Sniffing)
offsetParent property, (Sniffing at Work: scrollImage)
on prefix, event naming, (About Elements and Events), (About Elements and Events), (About Elements and Events)
onclick attribute, DOM alternative, (About Elements and Events)
onDrag* properties, DOM-Drag library, ( Example: Managing Files)
onerror event handler, (Handling Errors)
online validators, (HTML Starting Points)
onmouseout and onmouseover attributes, alternatives to, (Making Modular Image Rollovers)
opacity property, ( Example: Managing Files)
Opera browser, (Sniffing at Work: scrollImage)
oversrc attribute, (Making Modular Image Rollovers)

P

padding, CSS, and unexpected mouse effects, (Making the Menu Work)
pageX and pageY properties, (Sniffing at Work: scrollImage)
‘paranoid’ code, ( Example: Managing Files)
parentNode property, (Walking DOM Trees)
path attribute, drag-and-drop file manager, ( Example: Managing Files)
phone number validation, (Simple Client-Side Validation)
photo galleries, (Sniffing at Work: scrollImage)
PHP
beer guide example, (Drawing Code from Servers)
checking for unused usernames, (Remote Scripting Methods)
drag-and-drop file manager, ( Example: Managing Files), ( Example: Managing Files)
JavaScript written by, (Remote Scripting Methods)
server-side validation, (Client-Server Coordination)
serving the autoform page, (Remote Scripting Methods)
use with <iframe>s, (Remote Scripting Methods)
piggybacks, HTTP 204, (Remote Scripting Methods)
positioning
absolute, of submenus, (Creating Menu Content)
draggable elements, ( Example: Managing Files)
POST requests, drag-and-drop file manager, ( Example: Managing Files)
presentation with CSS, not HTML, (HTML Starting Points), (Adding CSS)
preventDefault method, (About Elements and Events), (About Elements and Events), (Simple Client-Side Validation)
progress hints, (Remote Scripting Methods)
properties
adding arbitrary properties, (Movement Example: Rising Tooltips), (Making the Menu Work)
event objects, tabulated, (About Elements and Events)
proxy elements and drop targets, ( Example: Managing Files), ( Example: Managing Files)
highlighting and tagging targets, ( Example: Managing Files), ( Example: Managing Files)

Q

query strings with embedded PHP, (Remote Scripting Methods)
quotes, escaping inside strings, (Animation Basics)

R

radio buttons, (Remote Scripting Methods)
RDF syntax, (Example: Parsing RSS Feeds)
<rdf:li> tags, (Example: Parsing RSS Feeds)
<rdf:RDF> tags, (Example: Parsing RSS Feeds)
readability of tables, (Smart Uses of Events)
receiveData function, (Remote Scripting Methods)
recursion, (Walking DOM Trees)
references to elements, (Walking DOM Trees), (Walking DOM Trees)
references to functions, (About Elements and Events)
refreshing pages, alternatives to, (Remote Scripting), (Problems with Frames)
regular expressions
alternative to className.indexOf, (Making Modular Image Rollovers)
client-side validation and, (Simple Client-Side Validation)
resource on, (Making Modular Image Rollovers)
rollover script example, (Making Modular Image Rollovers)
server-side validation, (Client-Server Coordination)
slash delimiters, (Smart Uses of Events), (Simple Client-Side Validation)
storing in library objects, (Simple Client-Side Validation)
use with replace methods, (Smart Uses of Events)
relative paths, XPath, (Example: Parsing RSS Feeds)
Remote Procedure Call (see XML-RPC)
remote scripting, (Remote Scripting), (Remote Scripting)
drawing code from servers, (Drawing Code from Servers), (Drawing Code from Servers)
hidden image updates, (Remote Scripting Methods)
HTTP 204 piggybacks, (Remote Scripting Methods)
methods enumerated, (Remote Scripting Methods)
obtaining data from servers, (Remote Scripting Methods), (Remote Scripting Methods)
other client-server options, (Remote Scripting Methods)
using <iframe>s, (Remote Scripting Methods), (Remote Scripting Methods)
XMLHTTP, (Remote Scripting Methods), (Remote Scripting Methods)
remote site links and bandwidth abuse, (Example: Parsing RSS Feeds)
removeAttribute method, (Bigger DOM Tree Changes)
removeChild method, (Bigger DOM Tree Changes)
replace methods, (Smart Uses of Events), (Remote Scripting Methods)
returnValue property, (About Elements and Events), (Simple Client-Side Validation)
rich-text editors, (Improving Form Usability)
rising tooltips animation, (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips)
content animation, (Movement Example: Rising Tooltips)
content creation, (Movement Example: Rising Tooltips)
DHTML library object, (Movement Example: Rising Tooltips)
full code listing, (Movement Example: Rising Tooltips)
rollover script example, (Making Modular Image Rollovers), (Making Modular Image Rollovers)
findTarget function, (Making Modular Image Rollovers)
HTML, (Making Modular Image Rollovers)
JavaScript, (Making Modular Image Rollovers)
as modular code, (Making Modular Image Rollovers)
setupRollovers function, (Making Modular Image Rollovers), (Making Modular Image Rollovers)
root nodes, (Walking DOM Trees)
RSLite library, (Remote Scripting Methods)
name resolution example, (Remote Scripting Methods)
potential for username checking, (Remote Scripting Methods)
RSS feeds
blogroll parsing example, (Example: Parsing RSS Feeds), (Example: Parsing RSS Feeds)
RSS versions and sample feed, (Example: Parsing RSS Feeds)

S

Safari browser
cellIndex property, (Smart Uses of Events)
clock animation example portability, (Animation Basics)
link event handling, (Movement Example: Rising Tooltips)
Sarissa library, (Remote Scripting Methods)
(see also XMLHTTP)
checking for presence of, (Remote Scripting Methods), ( Example: Managing Files)
cross-browser XPath support, (Introducing XPath)
drag-and-drop file manager use, ( Example: Managing Files)
namespace declarations, (Example: Parsing RSS Feeds)
use in beer guide example, (Drawing Code from Servers), (Drawing Code from Servers)
screen positions, calculating, (Sniffing at Work: scrollImage)
script (see JavaScript)
<script> tags, server-side validation, (Client-Server Coordination)
scrollImage example, (Sniffing at Work: scrollImage), (Sniffing at Work: scrollImage)
calculating screen positions, (Sniffing at Work: scrollImage)
discussion, (Sniffing at Work: scrollImage)
HTML, (Sniffing at Work: scrollImage)
JavaScript, (Sniffing at Work: scrollImage)
security and input validation, (Reasons for Form Validation)
selectNodes and selectSingleNode methods, (Introducing XPath)
semantic HTML, (HTML Starting Points), (Creating Menu Content)
serialize function, PHP, (Remote Scripting Methods)
server-side validation, (Client-Server Coordination), (Client-Server Coordination)
security and, (Forms and Validation), (Reasons for Form Validation)
servers, drawing code from, (Drawing Code from Servers), (Drawing Code from Servers)
beer guide example, (Drawing Code from Servers)
servers, obtaining data from, (Remote Scripting Methods), (Remote Scripting Methods)
hidden image updates, (Remote Scripting Methods)
HTTP 204 piggybacks, (Remote Scripting Methods)
other client-server options, (Remote Scripting Methods)
using <iframe>s, (Remote Scripting Methods), (Remote Scripting Methods)
XMLHTTP, (Remote Scripting Methods), (Remote Scripting Methods)
servers, sending instructions to, (Communicating With The Server), (Communicating With The Server)
drag-and-drop file manager, ( Example: Managing Files), ( Example: Managing Files)
weblog post editor, ( Using XML-RPC), ( Using XML-RPC)
XMLHttpRequest and, ( Example: Managing Files)
setInterval function, (Animation Basics)
multi-level animated menu project, (Making the Menu Work), (Making the Menu Work)
name resolution example, (Remote Scripting Methods)
rising tooltips animation, (Movement Example: Rising Tooltips)
setTimeout function, (Animation Basics)
asynchronous operation, (Animation Basics)
evaluation context, (Animation Basics)
multi-level animated menu project, (Making the Menu Work)
type-ahead drop-down lists example, (Improving Form Usability)
username checking example, (Remote Scripting Methods)
short-circuit evaluation, (Making Modular Image Rollovers)
showMenu method, sliding-menu.js, (Making the Menu Work)
slashes
regular expression delimiters, (Smart Uses of Events), (Simple Client-Side Validation)
XPath significance of, (Introducing XPath), (Example: Parsing RSS Feeds)
sliding menus (see multi-level animated menu project)
smartlink event listener example, (Smart Uses of Events)
soft hyphens, ( Example: Managing Files)
<span> tags
inline error messages, (Simple Client-Side Validation)
rising tooltips animation, (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips)
SQL injection, (Reasons for Form Validation)
src attribute, <iframe> tag, (Remote Scripting Methods)
src attribute, <image> tag, (Making Modular Image Rollovers)
src property, image object, (Remote Scripting Methods)
state property, rising tooltips animation, (Movement Example: Rising Tooltips)
stopPropagation method, (About Elements and Events), (About Elements and Events), (Simple Client-Side Validation)
string manipulation
fromCharCode method, (About Elements and Events)
match method, (Simple Client-Side Validation)
replace method, (Smart Uses of Events)
strings, empty, (Modern DOM Feature Sniffing)
style properties, changing, (Adding CSS), (What to do with Elements)
(see also CSS)
submenus
animating, (Making the Menu Work)
hiding, (Creating Menu Content)
positioning, (Creating Menu Content)
revealing, (Making the Menu Work)
submit event
attaching validation, (Simple Client-Side Validation)
blocking, in autoform example, (Remote Scripting Methods)
submitting forms indirectly, (Remote Scripting Methods)
Syntax code editor, (Adding JavaScript)

T

tables, highlighting rows, (Smart Uses of Events)
target attribute, (About Elements and Events)
target elements
drop targets, ( Example: Managing Files)
mouse position and ambiguity, (Making the Menu Work)
shortcut detection code, (Simple Client-Side Validation)
targetElement, IE, (Making the Menu Work)
ternary operator, (Simple Client-Side Validation)
text
changing text nodes, (What to do with Elements)
fading animation example, (Animation Basics)
text boxes
autocompletion widget, (Improving Form Usability)
“free beer” example form, (Making an Expanding Form)
with instructions, (Improving Form Usability)
word wrapping within, ( Example: Managing Files)
thumbnails, scrollImage example, (Sniffing at Work: scrollImage)
timed activity, (Animation Basics)
(see also animation)
(see also setTimeout function)
cancelling timed code, (Animation Basics)
delayed reactions to mouseouts, (Making the Menu Work)
wiping submenus, (Making the Menu Work)
toLowerCase method, (Smart Uses of Events), (Improving Form Usability)
tooltip animation example, (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips)
HTML, (Animation Basics)
JavaScript, (Animation Basics)
toUpperCase method, (Adding JavaScript)
tree structures
ascendDOM function, (Smart Uses of Events)
DOM representation of HTML, (What is the DOM?)
searching using XPath, (Introducing XPath)
walking DOM trees, (Walking DOM Trees)
try...catch commands, (Handling Errors), ( Using XML-RPC)
“type-ahead find” feature, (Improving Form Usability)
typeof property, (Modern DOM Feature Sniffing)

U

<ul> tags, HTML
menu layouts using, (Creating Menu Content)
nesting lists, (Creating Menu Content)
‘unobtrusive’ DHTML, (Detecting Browser Features), (Handling Errors)
update function, clock animation example, (Animation Basics)
uppercasing example, (Adding JavaScript)
usability
animation and, (Animation)
HTML widget enhancements, (Improving Form Usability), (Improving Form Usability)
<label> elements and, (Simple Client-Side Validation)
remote scripting and, (Remote Scripting)
supplying progress hints, (Remote Scripting Methods)
useCapture parameter, (About Elements and Events)
user interface, drag-and-drop functions, ( Example: Managing Files)
user-agent switching, (Sniffing at Work: scrollImage)
username checking example, (Remote Scripting Methods), (Remote Scripting Methods)
building the JavaScript, (Remote Scripting Methods)
screenshots, (Remote Scripting Methods), (Remote Scripting Methods)
style sheet, (Remote Scripting Methods)

V

valid HTML, (HTML Starting Points)
adding new attributes and, (Example: Parsing RSS Feeds)
DOM representations and, (What is the DOM?)
validators, (HTML Starting Points)
validation of user input, (Forms and Validation), (Client-Server Coordination)
client-side validation, (Simple Client-Side Validation), (Simple Client-Side Validation)
integration of client- and server-side, (Client-Server Coordination), (Client-Server Coordination)
on form submission, (Simple Client-Side Validation)
reasons to undertake, (Reasons for Form Validation)
variables
accessing within passed functions, (Animation Basics)
element references, (Walking DOM Trees)
Venkman debugger, (Adding JavaScript)

W

W3C (World Wide Web Consortium)
DOM definition, (The Document Object Model)
event handling approach, (About Elements and Events)
event model, (About Elements and Events), (Making the Menu Work)
event object properties, (About Elements and Events)
RDF syntax and, (Example: Parsing RSS Feeds)
XPath and, (Introducing XPath)
<wbr> tags, ( Example: Managing Files)
Web services
drawing data from servers, (Remote Scripting Methods)
exposure with XML-RPC, ( Using XML-RPC)
JavaScript restrictions, ( Using XML-RPC)
weblog post editor, ( Using XML-RPC), ( Using XML-RPC)
coordinating page and server, ( Using XML-RPC)
HTML page content, ( Using XML-RPC)
Weblogs, ( Using XML-RPC)
(see also Blogger API)
blogroll XPath example, (Example: Parsing RSS Feeds), (Example: Parsing RSS Feeds)
Webmail (see name resolution example)
widget enhancements, (Improving Form Usability), (Improving Form Usability)
autocomplete text boxes, (Improving Form Usability)
calendar popups, (Improving Form Usability)
text boxes with instructions, (Improving Form Usability)
type-ahead drop-down lists, (Improving Form Usability)
window object, (Animation Basics)
(see also setTimeout function)
open method, (Smart Uses of Events)
opera property, (Sniffing at Work: scrollImage)
window.document object (see getElementsBy* methods)
window.event object
cancelBubble property, (About Elements and Events)
checking for existence of, (About Elements and Events)
IE event handling and, (About Elements and Events)
properties compared with W3C, (About Elements and Events)
returnValue property, (About Elements and Events)
window.location object, replace method, (Remote Scripting Methods)
window.navigator object, browser sniffing, (Old-Fashioned Browser Sniffing)
window.parent object and <iframe>s, (Remote Scripting Methods)
wiping effects, multi-level menu project, (Making the Menu Work)
wrapper objects, (Movement Example: Rising Tooltips)
(see also library objects)
XHMHTTP implementations, (Remote Scripting Methods)
wrapping words within boxes, ( Example: Managing Files)
Wubben. Mark, (Making the Menu Work)

X

XML document access, (DOM Alternatives: XPath), (Introducing XPath)
XML namespaces, (Example: Parsing RSS Feeds)
XML-RPC, ( Using XML-RPC), ( Using XML-RPC)
calling APIs, ( Using XML-RPC)
weblog post editor, ( Using XML-RPC), ( Using XML-RPC)
XMLHTTP, (Remote Scripting Methods), (Remote Scripting Methods)
browser support, (Remote Scripting Methods)
drag-and-drop file manager use, ( Example: Managing Files)
Sarissa library, (Remote Scripting Methods)
username checking example, (Remote Scripting Methods), (Remote Scripting Methods)
XMLHttpRequest class, (Remote Scripting Methods), (Remote Scripting Methods), ( Example: Managing Files)
XPath, (DOM Alternatives: XPath), (Example: Parsing RSS Feeds)
adding XML namespaces, (Example: Parsing RSS Feeds)
applying to XML documents, (Introducing XPath)
blogroll example using, (Example: Parsing RSS Feeds), (Example: Parsing RSS Feeds)
constructing simple expressions, (Example: Parsing RSS Feeds)
learning resources on, (Introducing XPath)
XPCOM components, (Remote Scripting Methods)

Z

z-index property
CSS2 stacking problem, (Movement Example: Rising Tooltips), (Movement Example: Rising Tooltips)
draggable elements, ( Example: Managing Files)
proxy elements for drop targets, ( Example: Managing Files), ( Example: Managing Files)
Zakas, Nicholas, (Improving Form Usability)
zero values, JavaScript interpretation, (Modern DOM Feature Sniffing)
zero-width spaces, ( Example: Managing Files)
Zvon XPath tutorial, (Introducing XPath)

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