XMLHTTPRequest and document.write blanking page error

A

Adam

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", "http://127.0.0.1/patches/AJAX.xml", true);
req.open("GET",
"http://127.0.0.1/patches/affiliate_AJAX.cfm?Affiliate=1&Campaign=10",
true);
//req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
req.onreadystatechange = callback;

req.send(null);
}

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);
parseMessage();

// writeTable();
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)
window.document.writeln('<tr>');
//body of each slot
window.document.writeln('<td>');
window.document.writeln('test');
window.document.writeln('</td>');

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

}

window.document.writeln('</table>');
}
GryphonsClaw is online now Edit/Delete Message
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,189
Latest member
CryptoTaxSoftware

Latest Threads

Top