Wie kann ich auf eine lokale Datei von html + javascript zugreifen, die lokal ausgeführt wird?

9

Ich möchte eine kleine HTML-Datei schreiben, die lokal ausgeführt wird und eine kleine Textdatei auf meinem Computer manipuliert. Meine Anforderungen sind:

  • Textdatei befindet sich in einem Verzeichnis auf meinem Computer (test.txt)
  • Die HTML-Datei befindet sich im selben Verzeichnis wie die Textdatei (test.html)
  • Ich möchte JavaScript in HTML verwenden, um die Textdatei zu lesen und zu schreiben.

Ist das überhaupt möglich? Wenn ja, wie lese und schreibe ich meine Textdatei mit JavaScript?

    
gyurisc 18.06.2011, 15:10
quelle

3 Antworten

8

Wie in Itay Moavs Antwort diskutiert, wird das Schreiben in eine lokale Datei mit einer lokalen HTML-Datei möglicherweise ein Problem sein, ohne in einem erhöhten Berechtigungsmodus zu laufen und zusätzliche Javascript-Fähigkeiten zu haben (mit denen Sie lokale Dateien speichern können) .

Der Zugriff auf eine lokale Datei aus einer HTML-Datei ist jedoch durchaus möglich. Unten ist ein Beispielcode.

mytext.txt

%Vor%

local.html

%Vor%

Damit wird eine Warnung 1 Sekunde nach dem Laden der HTML-Seite ausgegeben (damit der iframe zuerst geladen werden kann) und der Inhalt in der Datei mytext.txt enthalten sein wird.

Beachten Sie, dass Firefox, wenn es Klartext ist, es mit einem PRE-Element umschließt, weshalb ich firstChild gemacht habe. Beachten Sie auch die Verwendung des BASE-Elements, das mit Ihren Dateien auf Ihr lokales Verzeichnis verweist.

    
Jared Farrish 18.06.2011, 15:32
quelle
7

Das Beispiel von Jared funktioniert gut. Das Einstellen einer unbekannten Beobachtungszeit ist jedoch nicht attraktiv. Hängen Sie stattdessen ein onload-Ereignis an den iframe an, indem Sie eine Funktion aufrufen, die den Inhalt der Textdatei liest und so schnell wie möglich tut.

Hier ist ein überarbeitetes Beispiel:

%Vor%

Die Datei test.txt muss natürlich im selben Verzeichnis wie die obige HTML-Datei selbst existieren.

    
Peter Riber 14.04.2013 11:55
quelle
3

Normalerweise ist dies nicht möglich und würde ein Sicherheitsproblem darstellen.
Wenn Sie jedoch einige Plugins (ActiveX, FF-Erweiterungen usw.) verwenden, können Sie dies möglicherweise tun.
Es gibt auch das Thema des lokalen Speichers, den Sie mit den meisten neueren Browsern verwenden können.

Aus Ihren Kommentaren frage ich mich, warum ich PHP / Ruby nicht mit einer anderen serverseitigen Sprache verwende? Sie sind genau dafür zugeschnitten.

    
Itay Moav -Malimovka 18.06.2011 15:14
quelle

Tags und Links