【发布时间】:2018-04-11 12:48:42
【问题描述】:
下面的代码应该在加载时读取当前目录中的文本文件的内容,并将其显示在html页面上。我尝试自己修改。但它没有给出输出。有没有更简单的方法来使用另一种方法来获得这个结果?或者请帮助找出这段代码有什么问题?
<html>
<head>
<meta http-equiv='Content-type' content='text/html;charset=UTF-8' >
<script>
function startRead()
{
// obtain input element through DOM
var file = document.getElementById("\\file.txt").files[0]
if(file)
{
getAsText(file);
}
}
function getAsText(readFile)
{
var reader;
try
{
reader = new FileReader();
}catch(e)
{
document.getElementById('output').innerHTML =
"Error: seems File API is not supported on your browser";
return;
}
// Read file into memory as UTF-8
reader.readAsText(readFile, "UTF-8");
// Handle progress, success, and errors
reader.onload = loaded;
reader.onerror = errorHandler;
}
function loaded(evt)
{
// Obtain the read file data
var fileString = evt.target.result;
document.getElementById('output').innerHTML = fileString;
}
function errorHandler(evt)
{
if(evt.target.error.code == evt.target.error.NOT_READABLE_ERR)
{
// The file could not be read
document.getElementById('output').innerHTML = "Error reading file..."
}
}
//Start reading file on load
window.addEventListener("load", startRead() { }, false);
</script>
</head>
<body>
<pre>
<code id="output">
</code>
</pre>
</body>
</html>
下面给出的是我修改以获得上述代码的代码。我的意图是。当我打开 html 文件时,它会读取当前目录中的文本文件并显示内容。
<html>
<head>
<meta http-equiv='Content-type' content='text/html;charset=UTF-8' >
<script>
function startRead()
{
// obtain input element through DOM
var file = document.getElementById("file").files[0];
if(file)
{
getAsText(file);
}
}
function getAsText(readFile)
{
var reader;
try
{
reader = new FileReader();
}catch(e)
{
document.getElementById('output').innerHTML =
"Error: seems File API is not supported on your browser";
return;
}
// Read file into memory as UTF-8
reader.readAsText(readFile, "UTF-8");
// Handle progress, success, and errors
reader.onload = loaded;
reader.onerror = errorHandler;
}
function loaded(evt)
{
// Obtain the read file data
var fileString = evt.target.result;
document.getElementById('output').innerHTML = fileString;
}
function errorHandler(evt)
{
if(evt.target.error.code == evt.target.error.NOT_READABLE_ERR)
{
// The file could not be read
document.getElementById('output').innerHTML = "Error reading file..."
}
}
</script>
</head>
<body>
<input id="file" type="file" multiple onchange="startRead()">
<pre>
<code id="output">
</code>
</pre>
</body>
</html>
【问题讨论】:
-
Java与JavaScript无关
-
document.getElementById("\\file.txt")在您的文档中不存在,因此当您尝试从中读取时会遇到异常。查看您的 JavaScript 控制台。 -
此
document.getElementById("\\file.txt").files[0]行是否获取任何元素。我不这么认为。想在这里做什么? -
"load", startRead() { }, false是语法错误,因此当您尝试编译该代码时会出现异常。查看您的 JavaScript 控制台。 -
下面的代码 sn-p 与上面的代码不同吗?
标签: javascript html text-files