View Full Version : Document.write blanks current code

05-25-2005, 08:32 AM
This is frustrating me. Opening IE displays the following code fine. When I open a new window the code no longer works. All the HTML is overwritten with the first document.write statement. Tried with window tried without Please help.

This code pulls XML from a web site then parses it into a dynamically created table built with javascript. The write table is not working correctly, other methods work fine. This code also locks up Fire Fox to where it doesn't stop loading the page.

var req;
var textColor;
var linkColor;
var columns;
var tWidth;
var bgcolor;

function init () {
if (window.XMLHttpRequest)
req = new XMLHttpRequest();

else if (window.ActiveXObject)
req = new ActiveXObject("Microsoft.XMLHTTP");

// req.open("GET", "", true);
req.open("GET", "", true);
req.onreadystatechange = callback;


function callback() {
if (req.readyState == 4) {
if (req.status == 200) {
// update the HTML DOM based on whether or not message is valid
// alert('valid request' + req.status + req.readyState);

// writeTable();
return true;



function parseMessage() {
var message = req.responseXML.getElementsByTagName("fontcolor")[0];
textColor = message.childNodes[0].nodeValue;

message = req.responseXML.getElementsByTagName("linkcolor")[0];
linkColor = message.childNodes[0].nodeValue;

message = req.responseXML.getElementsByTagName("tablecols")[0];
columns = message.childNodes[0].nodeValue;

message = req.responseXML.getElementsByTagName("tablewidth")[0];
tWidth = message.childNodes[0].nodeValue;

message = req.responseXML.getElementsByTagName("bgcolor")[0];
bgcolor = message.childNodes[0].nodeValue;


function writeTable() {

window.document.writeln('<table border="0" cellspacing="10" width="' + tWidth + '" bgcolor="#' + bgcolor + '">');

for (i=0; i<columns; i++) {

if ((i % columns) == 0)
//body of each slot

if ((i % columns) == (columns - 1))
window.document.writeln('</tr>'); //end row if column limit is up



05-26-2005, 04:46 AM
When you document.write after the page has loaded, all the contents will be overwritten. What you need is innerHTML or DOM methods createElement and appendChild. Search for those keywords here in CF and you'll find many results.