读取文本文件以HTML显示

use*_*185 1 html javascript io

我只是在一个有趣的网站上工作,我想知道您是否可以使用JavaScript读取本地文本文件,然后将其显示为HTML。因此,例如,如果我的项目中保存了一个文本文件,那么我可以用JavaScript编写一个函数来读取整个文件,然后将其显示在网页上吗?

我环顾四周,试图找到可以做到这一点的东西,但我认为我并不完全理解。我有:

function readFile(fileName){
   var fileRead = new ActiveXObject('Scripting.FileSystemObject');
   text = fileRead.OpenTextFile(fileName, 1, false, 0);

   while(!text.AtEndOfSteam){
       text += text.ReadLine();
    }

   text.Close();    
}
Run Code Online (Sandbox Code Playgroud)

我不知道这是否行得通或做我想做的事。所以我的问题是,如何使用JavaScript读取文本文件,然后在HTML网页上显示该文本文件的内容?

Ber*_*KHE 5

您必须使用File API。

var input = document.getElementById("myFile");
var output = document.getElementById("output");

input.addEventListener("change", function () {
  if (this.files && this.files[0]) {
    var myFile = this.files[0];
    var reader = new FileReader();
    
    reader.addEventListener('load', function (e) {
      output.textContent = e.target.result;
    });
    
    reader.readAsBinaryString(myFile);
  }
});
Run Code Online (Sandbox Code Playgroud)
<input type="file" id="myFile">

<div id="output"></div>
Run Code Online (Sandbox Code Playgroud)

编辑

阅读您的评论后,我认为这就是您想要的。

var output = document.getElementById("output");

$("a").on("click", function (e) {
  e.preventDefault();
  $.ajax(this.href).done(function(data) {
    output.textContent = data;
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="output"></div>

<a href="link/to/file">Link to file</a>
Run Code Online (Sandbox Code Playgroud)