Errata

Here is a list of errors, mostly typos, that have been found in the book since going to print. If you find an error that isn't listed here, let me know.

Given enough eyeballs, all bugs are shallow.

Eric S. Raymond

Chapter Page Error
One 9

Third paragraph reads:

Internet Explorer 5 shipped with built-in support for WC3's standardized DOM

Should read:

Internet Explorer 5 shipped with built-in support for W3C's standardized DOM

Two 25

Second last paragraph reads:

division uses the backslash (/)

Should read:

division uses the forward slash (/)

32

First code example reads:

var count = 1;
do {
  count++;
  alert (count);

} while (count < 11)

Should read:

var count = 1;
do {
  alert (count);
  count++;

} while (count < 11)

Three 45

Seventh paragraph reads:

The term node comes from networking, where it used to denote a point of connection in a network.

Should read:

The term node comes from networking, where it is used to denote a point of connection in a network.

Four 59

First paragraph reads:

I'm going to save that file as gallery.htm and place my pictures in a directory called images.

Should read:

I'm going to save that file as gallery.html and place my pictures in a directory called images.

61

Last code block reads:

document.getElementById("placeholder"). setAttribute("src", showpic.getAttribute("href"));

Should read:

document.getElementById("placeholder"). setAttribute("src", whichpic.getAttribute("href"));

66

First line of code reads:

var titletext = whichPic.getAttribute("title");

Should read:

var titletext = whichpic.getAttribute("title");

68

Fourth paragraph reads:

I'll place it right before the img tag.

Should read:

I'll place it right after the img tag.

72

Stylesheet reads:

font-family: "Helvetica","Arial",serif;

Should read:

font-family: "Helvetica","Arial",sans-serif;

Five 83

Second code example reads:

<a href="http://www.example.com/" onclick = "popUp('http://www.example.com'; return false;">Example</a>

Should read:

<a href="http://www.example.com/" onclick = "popUp('http://www.example.com'); return false;">Example</a>

Third code example reads:

<a href="http://www.example.com/" onclick = "popUp(this.getAttribute('href'); return false;">Example</a>

Should read:

<a href="http://www.example.com/" onclick = "popUp(this.getAttribute('href')); return false;">Example</a>

Fourth code example reads:

<a href="http://www.example.com/" onclick = "popUp(this.href; return false;">Example</a>

Should read:

<a href="http://www.example.com/" onclick = "popUp(this.href); return false;">Example</a>

87

First and last code blocks read:

if (links[i].getAttribute("class") == "popup") {

To work in IE, this should read:

if (links[i].className == "popup") {

89

Code reads:

if (lnks[i].getAttribute("class") == "popup") {

To work in IE, this should read:

if (lnks[i].className == "popup") {

Six 107

Fourth code example reads:

if (whichpic.getAttribue("title"))

Should read:

if (whichpic.getAttribute("title"))

108

First code example reads:

var text = whichPic.getAttribute("title") ? whichPic.getAttribute("title") : "";

Should read:

var text = whichpic.getAttribute("title") ? whichpic.getAttribute("title") : "";

111

Code block reads:

var text = whichPic.getAttribute("title") ? whichPic.getAttribute("title") : "";

Should read:

var text = whichpic.getAttribute("title") ? whichpic.getAttribute("title") : "";

Seven 126

Last sentence of the fifth paragraph reads:

If you want add to this tree, you need to insert new nodes.

Should read:

If you want to add to this tree, you need to insert new nodes.

137

First line of code reads:

parent.insertBefore(newElement. targetElement.nextSibling);

Should read:

parent.insertBefore(newElement, targetElement.nextSibling);

Eight 154

Third paragraph reads:

The text node is the second (and last) node within the abbr element.

This is incorrect. The text node is not a child of the abbr element, it is a child of the em element.

158

Second code block reads:

if (!getElementsyTagName) return false;

Should read:

if (!getElementsByTagName) return false;

165

Third code block reads:

for (var i=0; i<quotes.length; i ++) {

Should read:

for (var i=0; i<quotes.length; i++) {

167

First code example reads:

var quoteElements = quotes[i].getElementsByTagName("*");

Should read:

var quoteChildren = quotes[i].getElementsByTagName("*");

Second code example reads:

var elem = quoteElements[quoteElements.length-1];

Should read:

var elem = quoteChildren[quoteChildren.length-1];

172

First code block reads:

<li><a href="contact.html" accesskey="0">Contact</a></li>

Should read:

<li><a href="contact.html" accesskey="9">Contact</a></li>

Ten 234

Fourth code block reads:

var dist = Match.ceil((final_x - xpos)/10);

Should read:

var dist = Math.ceil((final_x - xpos)/10);

238

Sixth code block reads:

insertAfter(list,slideshow);

Should read:

insertAfter(slideshow,list);

239

First code block reads:

insertAfter(list,slideshow);

Should read:

insertAfter(slideshow,list);

Eleven 254

Stylesheet reads:

font-family: "Georgia","Times New Roman",sans-serif;

Should read:

font-family: "Georgia","Times New Roman",serif;

261

Third paragraph from the end reads:

The photos.html file has an id of "live", and so on.

Should read:

The photos.html file has an id of "photos", and so on.

270

Second last paragraph reads:

Call the function with onLoadEvent

Should read:

Call the function with addLoadEvent

286

First code block reads:

function prepareForms(){
  for (var i=0; i<document.forms.length; i++) {
    var thisfrom = document.forms[i];
    resetFields(thisform);
    }
  }
}

Should read:

function prepareForms(){
  for (var i=0; i<document.forms.length; i++) {
    var thisfrom = document.forms[i];
    resetFields(thisform);
  }
}

Twelve 306

Seventh paragraph reads:

Response times are increased, and lengthy page refreshes are eliminated.

Should read:

Response times are decreased, and lengthy page refreshes are eliminated.

Reference 314

The last line of the first code example reads:

document.body.appendChild(message);

Should read:

document.body.appendChild(container);

320

The last line of the second code example reads:

content.appendChild(para);

Should read:

container.appendChild(para);