1.   | 
var newText, newBr;
var newWindow = window.open("", "newWin","location,scrollbars, resizable=yes,width=300,
  height=300");
In the  initWindows() function, we declare two new variables,  newText and  newBr. The following line opens the new window, sets its parameters, and assigns it to the variable  newWindow.
   | 
2.   | 
var newDoc = newWindow.document;
 
This new variable,  newDoc, stores our new window's document object, which we'll change in the next step.
   | 
3.   | 
newDoc.title = "Generated Window";
newDoc.bgColor = "#000000";
newDoc.fgColor = "#FFFFFF";
newDoc.body.innerHTML = "<h2>This window shows the result from the other window<\/h2><div 
 id= 'looper'> </div>";
 
This is the cool part, where we set the properties of the  newDoc object (in other words, the contents of the window we've created). We can set that new document's title, background color, foreground color, and  body.innerHTML (the contents of the document's body tag) to be whatever we want. In this case, we're generating the HTML headers and the first part of the page body ( Figure 6.10).
   | 
 |  | 
4.   | 
var loopDiv = newDoc.getElementById ("looper");
 
You probably noticed that the  div at the end of the last step has the  id "looper"that's the  div that we're going to be adding to shortly. To do that, we create and set the new  loopDiv variable.
   | 
5.   | 
We're starting a loop with the counter variable  i. Set  i to zero to begin; then, as long as  i is less than 100, we increment the value of  i by 1.
   | 
6.   | 
newText = newDoc.createTextNode ("The loop is now at: " + i);
newBr = newDoc.createElement("br");
We need to create elements that we can then add to the  looper div. Previously in this chapter, we've changed  innerHTML, which overwrites what's already in that  div. In this case, though, we want to add on, not overwrite. The two built-in functions,  createTextNode() and  createElement(), allow us to respectively create a text node and an element (in this case, a  <br /> element) on the fly.
   | 
7.   | 
loopDiv.appendChild(newText);
loopDiv.appendChild(newBr);
 
Once those elements have been created, they can be added to the  div by doing an  appendChild() with the contents of the two variables we set previously. Using  appendChild() and other methods of manipulating nodes will be covered in more depth in  Chapter 12. 
Once they're added, we're still in the loop, so we loop around again until the counter in step 5 hits 100.
   |