Hallo,
if((window.XMLHttpRequest)&&(document.all)){
Browserabfragen über unbeteiligte Objekte sind meistens Käse. Frage einfach ab, ob die Objekte zur Verfügung stehen, die du verwenden willst. M.M.n. in der von mir beschriebenen Reihenfolge, es sei denn, du willst Konqueror auch mit XMLHttpRequest versorgen, denn der zeigt einen Download-Dialog für die Textdatei an und kennt document.all.
Würde das nicht schon reichen? Es schließt natürlich keine Browser aus, die werder das eine noch das andere können, aber soviele werden wohl bspw. mit Netscape 4 nicht meher unterwegs sein, oder?
Darüber würde ich gar nicht spekulieren, sondern einfach prüfen, ob document.body und document.body.innerHTML zur Verfügung steht, damit geht man für ältere und zukünftige Browser auf Nummer sicher.
Er "schaffte" es also nicht, das Frame so schnell zu laden/erstellen, wie es nötig wäre. Somit beginnt der "lese" Vorgang bereits zu früh
Beim iframe-Element sollte ein load-Event passieren, wenn der Inhalt fertig geladen wurde. Erst dann solltest du mit dem Lesevorgang beginnen: <iframe ... onload="lese()"></iframe>. Alternativ den onload des ganzen Dokuments nutzen, was aber eine sichtbare Verzögerung zur Folge hätte.
Mathias