    <html>
<head>
<script>
function loadXMLDoc()
{
    url = 'endlessxml.py';

    rq = false;
    
    try {
      if (window.XMLHttpRequest) {
        rq = new XMLHttpRequest();
        rq.overrideMimeType('text/xml');
        rq.onreadystatechange = readyStateChanged;
        rq.parent = window.parent;
        rq.open('GET', url, true);
        rq.send(null);
      }
    } catch (ex) {
        rq = false;
        alert(ex);
    }
}

function readyStateChanged(evt)
{
    evt.target.parent.dumpRequestStatus(evt.target);
}

</script>
</head>
<body onload="loadXMLDoc(); window.parent.subframeLoaded();" onunload="window.parent.log('Iframe unloaded');">
<p>This should have an XMLHttpRequest going on inside it</p>
</body>
</html>
