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
Freigeben: 2024-12-21 01:26:10
Original
375 Leute haben es durchsucht

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();
}
Nach dem Login kopieren

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));
Nach dem Login kopieren

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");
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage