Heim >Web-Frontend >js-Tutorial >Wie kann ich eine lokale Textdatei zuverlässig in einen Webbrowser einlesen?

Wie kann ich eine lokale Textdatei zuverlässig in einen Webbrowser einlesen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-21 01:26:10376Durchsuche

How Can I Read a Local Text File into a Web Browser Reliably?

Eine lokale Textdatei in den Browser einlesen

Um eine lokale Textdatei in den Browser einzulesen, verwendeten Entwickler traditionell XMLHttpRequest. Eine Möglichkeit, dies zu tun, ist eine Funktion, die den Pfad der Datei übernimmt und jede Textzeile in ein Zeichenarray umwandelt:

function readTextFile() {
  var rawFile = new XMLHttpRequest();
  rawFile.open("GET", "testing.txt", true);
  rawFile.onreadystatechange = function() {
    if (rawFile.readyState === 4) {
      var allText = rawFile.responseText;
      document.getElementById("textSection").innerHTML = allText;
    }
  }
  rawFile.send();
}

Dieser Ansatz schlägt jedoch häufig mit Ausnahmen in anderen Browsern als Firefox fehl. Um dieses Problem zu beheben, sollten Entwickler die in JS 2015 eingeführte Fetch-API verwenden:

fetch("myText.txt")
  .then((res) => res.text())
  .then((text) => {
    // do something with "text"
   })
  .catch((e) => console.error(e));

Darüber hinaus ist es aus Sicherheitsgründen wichtig, die Verwendung von file:/// zu vermeiden. Erwägen Sie stattdessen die Verwendung einfacher Webserver wie Pythons http.server oder HTTP-Server zum Laden von Daten.

Ein weiteres Problem tritt auf, wenn versucht wird, Dateien lokal mit XMLHttpRequest zu lesen. Um dieses Problem zu beheben, sollten Entwickler den Status 0 prüfen, da für das Laden lokaler Dateien kein Status zurückgegeben wird:

function readTextFile(file) {
  var rawFile = new XMLHttpRequest();
  rawFile.open("GET", file, false);
  rawFile.onreadystatechange = function () {
    if(rawFile.readyState === 4)  {
      if(rawFile.status === 200 || rawFile.status == 0) {
        var allText = rawFile.responseText;
        console.log(allText);
       }
    }
  }
  rawFile.send(null);
}

readTextFile("file:///C:/your/path/to/file.txt");

Das obige ist der detaillierte Inhalt vonWie kann ich eine lokale Textdatei zuverlässig in einen Webbrowser einlesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn