生成可由javascript FileReader读取而无需HTML输入标记的File对象

时间:2015-11-13 00:42:54

标签: javascript jquery html filereader

我是动态HTML网站的新手,所以请耐心等待。这是我的网络本地运行的网页。在加载我的网页时,我希望它能够读取文本文件并将数据放入文本区域。然后,这将每隔几秒更新一次,以显示文本文件中的更改。我已经阅读了几个关于如何使用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,因为它很容易,但愿意接受建议。谢谢!

2 个答案:

答案 0 :(得分:0)

尝试使用.load()

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

如,

&#13;
&#13;
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)
  })
}())
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

readAsText只接受Blob对象,您可以参考how to create a Blob OBj