2017-07-24 142 views
2

我有一個文本文件,其中包含來自另一個(C++)應用程序的某些日誌記錄數據。由於我不想使用一些GUI框架來顯示日誌數據的一些可視化分析,我想使用HTML和Javascript來完成這項任務。使用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

我們不能去prev目錄,如果所有都在一個目錄或孩子,然後c使用XMLHttpRequest進行讀取,檢查[this](https://stackoverflow.com/a/20106436/3551786)和[this](https://stackoverflow.com/a/11053777/3551786) – Durga

回答

0

你不能選擇使用JavaScript文件,而無需人的交互出於安全原因,但您可以在使用隱藏iframe,然後讀取文件的這樣

<!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>

內容這將做這項工作,但我不知道這是否是最好的辦法

相關問題