Der Martin: Inhalt aus iframe einlesen

Beitrag lesen

Hi,

function T (a) // Textdatei laden

{
   var b = document.createElement("iframe");

b.setAttribute("src", "../../TXT/" + a + ".txt");

document.body.appendChild(b);

return b.contentDocument.body.innerHTML;
}


> Aktuell liefert mir die Funktion "T" aber immer nur einen leeren Inhalt zurück.  
  
es würde mich wundern, wenn's anders wäre. Denn du lässt dem Browser gar keine Zeit zum Laden der Ressource. Du erzeugst ein iframe-Element, gibst ihm ein src-Attribut (btw: Warum so umständlich? Ein einfaches b.src="..." wäre einfacher) und hängst es ins Dokument ein.  
  
Aber erst wenn die Funktion beendet ist und der Browser wieder "Langeweile hat", kümmert er sich darum, die auf diese Weise angeforderte Ressource auch zu laden. Du müsstest also die Auswertung bzw. das Lesen des Inhalts verzögern, am besten indem du es an das onload-Event des iframe bindest. Bei der Gelegenheit kannst du auch noch mit einem onerror-Handler den Misserfolg feststellen, falls es mal schiefgeht.  
  

> Im Browser sehe ich hingegen den erzeugten iframe und dessen Inhalt  
  
Ja. Aber erst ein paar Sekundenbruchteile später. Du schickst quasi deinen kleinen Buben zum Brötchenholen, und greifst sofort im selben Augenblick in den Einkaufskorb und wunderst dich, dass keine Brötchen drin sind.  
  

> Sicherheitsaspekte sind hier erstmal nebensächlich. Die Absicherung wird ergänzt, sobald die Funktionalität gegeben ist.  
  
Die Einstellung ist verbreitet. Empfehlenswert ist sie aber nicht.  
  
Ciao,  
 Martin  

-- 
In der Theorie stimmen Theorie und Praxis genau überein.  
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(