首页 > 解决方案 > javascript可以显示任何扩展名的任何外部文件的文本吗?

问题描述

让我们考虑一下我有一个名为text.txt的文本文件。所以,现在我创建了一个名为showtext.html的文件,我必须在其中编写 javascript 以便它可以显示text.txt中存在的文本。我认为它会像:

文本 ( text.txt )

 Show me up !

HTML ( 显示文本.html )

<!DOCTYPE html>
<html>
<body>
<script>
   var src = "text.txt";
   document.write( value.get( src ) );
</body>
</html>

showtext.html 的输出

Show me up !

在上面的函数中,value.get()获取然后写入 text.txt 的值。那么,javascript真的可以做到吗?我怎样才能使value.get()?它会仅支持.txt扩展名还是可以支持任何自定义扩展名?或者这只能用 PHP 来完成?

标签: javascript

解决方案


“本地”的意思是“所有客户端,没有服务器”:) 如果您没有服务器,则不能使用 fetch() 之类的东西(据我所知,安全限制会阻止这种情况)。但是只要用户自己选择文件,就可以在客户端从本地计算机读取文件。您不能只从客户端计算机中读取任意文件(再次出于安全原因)。

如果您同意让用户选择文件,请查看 FileReader API。

HTML:

<input type='file' id='fileSelector' />

JS:

const fileInput = document.getElementById('fileSelector');
fileInput.addEventListener('change', event => {
  const file = event.target.files[0];
  const reader = new FileReader();
  reader.addEventListener('load', readEvent => {
    // In here, readEvent.target.result will have the text of the file for you to work with.
  });
  reader.readAsText(file);
});

推荐阅读