2015-11-13 28 views
0

我是動態HTML網站的新手,所以忍受着我。這是我的網絡本地運行的網頁。在我的網頁加載時,我想讓它讀取文本文件並將數據放入textarea。然後每隔幾秒更新一次以在文本文件中顯示更改。我已經閱讀了幾個關於如何在HTML中使用輸入標籤的例子,但是我希望它在沒有用戶輸入的情況下加載。生成文件對象,可以通過JavaScript FileReader讀取沒有HTML輸入標記

我想使用JavaScript的FileReader(),但不知道如何使一個可以通過readAsText(object_here)讀取的對象。

<script> 
    var intervalID1; 

    function updateTextTimer() 
    { 
     intervalID1 = setInterval(updateText,5000); 
    } 

    function updateText() 
    { 
     var temp = document.getElementById('logOutput'); 
     var reader = new FileReader(); 
     var fileName = "test.txt"; 

     reader.onload = function(e) {temp.value = e.target.result;} 
     reader.readAsText(file_object); 
    } 
    </script> 

同樣,我寧願使用的FileReader,因爲它會很容易,但願意接受建議。謝謝!

+3

你不能沒有用戶交互的讀取本地文件。請糾正我,如果我錯了,我會燒我的瀏覽器的安全漏洞 – andlrc

+0

當你說「本地運行的網站」是否意味着你正在從'file://協議加載它?如果是這樣,你出於明顯的安全原因被卡住了。但是,如果您從本地服務器('http:// localhost')加載它,則可以將'XMLHttpRequest()'的響應與'xhr.responseType =「blob」'一起傳遞給FileReader。 – Kaiido

+0

_「我已經閱讀了幾個關於如何在HTML中使用輸入標籤的例子,但我希望它在沒有用戶輸入的情況下加載。」_不能從用戶文件系統中用'input'元素編程地選擇用戶文件。嘗試使用jQuery'.load()'http://api.jquery.com/load加載文本文件 – guest271314

回答

-1

readAsText只接受Blob對象,你可以參考how to create a Blob OBj

+0

問題是詢問如何加載本地文件,而不是添加到FileReader的參數。 @ dev-null是正確的,你不能這樣做。 –

+0

'File'繼承自'Blob':http://www.w3.org/TR/FileAPI/#dfn-file。 –

0

嘗試使用.load()

var timeout = null; 
(function loadText() { 
    $("#logOutput").load("test.txt", function() { 
    if (timeout) clearTimeout(timeout); 
    timeout = setTimeout(loadText, 5000) 
    }) 
}()) 

例如,

var timeout = null, obj = null; 
 
(function loadText() { 
 
    obj = URL.createObjectURL(new Blob([$("#input").val()], { 
 
    type: "text/plain" 
 
    })) 
 
    $("#logOutput").load(obj, function() { 
 
    if (timeout) clearTimeout(timeout); 
 
    timeout = setTimeout(loadText, 5000) 
 
    }) 
 
}())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 
<label for="input">input text here:</label><br /> 
 
<textarea id="input"> 
 
</textarea> 
 
<br /> 
 
<label for="logOutput">output:</label> 
 
<br /> 
 
<textarea id="logOutput" disabled> 
 
</textarea>