|
FAQ de.comp.lang.javascript |
|
Bitte verwenden Sie als Einstiegsadresse in diese FAQ die
Homepage der Newsgroup de.comp.lang.javascript.
Der Aufenthaltsort dieser Seiten hier kann sich ohne Vorwarnung ändern.
Eigentlich ist so etwas für JavaScript nicht vorgesehen. Mit ein wenig Trickserei geht es aber bei den "großen" Browsern trotzdem, wenn auch ziemlich unterschiedlich.
Netscape 4 zum Beispiel kann über LiveConnect Java-Methoden benutzen und darüber serverseitige Dateien jeder Art einlesen (natürlich nur wenn Java aktiviert ist). Das sieht dann ungefähr so aus:
if (self.netscape) { // Browser ist Netscape und Java ist aktiviert text=''; var strom = java.net.URL('textDatei.txt').openStream(); var vorleser = new java.io.InputStreamReader(strom); var leser = new java.io.BufferedReader(vorleser); while(((zeile=leser.readLine()))!=null) text+=zeile+'\n'; reader.close(); alert(text); }
Für Internet Explorer 4 kann man stattdessen einen versteckten Iframe benutzen. Die Datei wird in den Iframe geladen und dessen Inhalt anschließend ausgelesen. So zum Beispiel:
document.body.insertAdjacentHTML('beforeEnd', '<iframe id="puffer" src="textDatei.txt" ' +'style="width:0px;height:0px;">' +'</iframe>'); setTimeout("warten()", 200); function warten() { if (puffer.document && puffer.document.body && puffer.document.readyState=='complete') { text = puffer.document.body.innerText; alert(text); } else setTimeout('warten()', 200); }
Die Windows-Version von Internet Explorer 5 bringt ein DHTML Behavior mit, das die Sache noch einfacher macht. Man muss lediglich irgend einem Element das Behavior zuweisen, zum Beispiel dem body:
document.body.style.behavior="url(#default#download)";
Dann hat dieses Element automatisch die Methode startDownload, der ein Dateiname und eine Funktionsreferenz übergeben wird. Die Datei wird dann eingelesen und der Funktion als String übergeben:
document.body.startDownload('textDatei.txt', liesvor); function liesvor(text) { alert(text); }
Mit der Mac-Version des IE5 geht das nicht. Für den muss man auf die Iframe-Lösung von oben zurückgreifen.
Wolfgang Schwarz
Diese Seite ist Teil der de.comp.lang.javascript FAQ. Die Einstiegsadresse lautet http://www.dcljs.de/.
© S. Mintert, Ch. Kühnel
______ letzte Änderung: 01.01.2002 ______
Original-URL dieser Datei: http://dcljs.de/faq/howto.php?in=misc