Wolfgang Graf: Auslesen einer Datei

Ziel: Ich möchte ohne Reload wie bei einem Chat auf einer HTML-Seite dem User eine Nachricht zukommen lassen.

Idee: Ich schreibe eine Textdatei auf den Server (z.B per perl), die dann von JavaScript ausgelesen wird.

Problem: Wie liest man per JavaScript Dateien aus und integriert sie in eine HTML-Seite?

  1. Hallo

    Entweder du generierst das JS dynamisch mit Perl oder du nimmst den
    Clientseitigen ansatz der aber nur mit eingeschaltetem Java leuft:
    < http://www.teamone.de/selfaktuell/artikel/jsfileop/artikel.htm>

    Tschüs

    Daniel

  2. Hi,

    Idee: Ich schreibe eine Textdatei auf den Server (z.B per perl), die dann von JavaScript ausgelesen wird.

    Problem: In ein fertiges Dokument zu schreiben ist nicht möglich, ohne dies von Anfang an nochmal neu zu schreiben.

    Problem: Wie liest man per JavaScript Dateien aus und integriert sie in eine HTML-Seite?

    Antwort: Gar nicht. JavaScript hat keinen Zugriff auf Dateien; insbesondere nicht auf welche, die in einer völlig anderen Welt existieren. Bedenke, Du arbeitest auf Clientseite, da ist der Server weg[tm].

    Cheatah

  3. Hallo,

    Idee: Ich schreibe eine Textdatei auf den Server (z.B per perl), die dann von JavaScript ausgelesen wird.

    Erzeuge mit Perl eine HTML-Datei mit einem Javascriptbereich, in der sich in einer Variablen der Text befindet. Lade dies Datei per Javascript beim NN in einem Layer und beim IE in ein Iframe. Beide kannst du entweder unsichtbar machen (display:none) oder ausserhalb des Bildschirms positionieren (left:9999999px).
    Mit einem onload Evend-Handler im Body der neuen Seite, kannst du nun diese Variable an die "Hauptseite" übergeben und zur Anzeige bringen (hoffentlich schlägt da nicht die Sicherheit zu, aber wenn alle Seiten vom gleichen Server kommen, sollte es funzen). Wie der Text angezeigt werden soll, mußt du dann schon selber regeln (beim NN hast du da nicht so viele Möglichkeiten, beim IE kannst du ihn hinschreiben wo du willst - .innerText). Beim NN geht es am einfachsten mit einem Layer.
    viele Grüße
    Thomas