使用HTML和Javascript

时间:2017-07-24 10:46:28

标签: javascript jquery html file

我有一个文本文件,其中包含来自另一个(C ++)应用程序的一些日志记录数据。由于我不想使用某些GUI框架来显示对日志数据的一些可视化分析,我想使用HTML和Javascript来完成这项任务。

我设法通过文件输入<input id="inputfile" type="file"/>输入数据,然后通过Javascript中的FileReader读取文件。

我的问题:日志记录文件与HTML + JS文件位于同一目录中,并且文件名始终相同,如果没有用户一遍又一遍地选择相同的文件,读取文件会很不错。 我无法做到这一点。我尝试<object id="data" type="text/plain" data="out.txt"></object>将日志文件包含在HTML中,然后通过JS读取它,但没有成功。

有关如何避免用户选择并在加载文档时始终读取相同(静态)文件的任何想法? 如果可能的话: (a。)只使用HTML,Javascript和jQuery。 (b。)无需指定绝对文件路径。

使用XMLHttpRequest还有另一个答案。但正如我所说,我需要一个相对路径,我的数据是纯文本。

1 个答案:

答案 0 :(得分:0)

出于安全原因,您无法在没有人工干预的情况下选择带有javascript的文件,但是您可以使用隐藏的iframe包含然后阅读此类文件的内容

&#13;
&#13;
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
    <iframe id="iframeId" src="data.text" frameborder="0" style="display:none"></iframe>
    <script>
      function readText() {
        var iframe = document.getElementById('iframeId');
        var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
        var text = innerDoc.getElementsByTagName('pre')[0].innerText;
        console.log(text);
      }
      setTimeout(function() {
        readText();
      }, 50);
    </script>
</body>
</html>
&#13;
&#13;
&#13;

这将完成这项工作,但我不确定这是否是最佳方式