Javascript文件读取器onload未启动
我已经有一段时间没有使用JavaScript了,我似乎无法读取文本文件并显示内容 我尝试了Javascript文件读取器onload未启动,javascript,html,Javascript,Html,我已经有一段时间没有使用JavaScript了,我似乎无法读取文本文件并显示内容 我尝试了onload以及onload。如果我只是把reader.onload=alert('Hello')警报触发,但我无法获取任何与该函数相关的内容 不太清楚从这里到哪里去。我已经尝试在reader.onload=function(evt)…之后定义函数,但这不起作用 我在Safari 6.0.5和Chrome中也尝试过 <!DOCTYPE HTML>
onload
以及onload
。如果我只是把reader.onload=alert('Hello')代码>警报触发,但我无法获取任何与该函数相关的内容
不太清楚从这里到哪里去。我已经尝试在reader.onload=function(evt)…
之后定义函数,但这不起作用
我在Safari 6.0.5和Chrome中也尝试过
<!DOCTYPE HTML>
<html>
<head>
<title>Pi to Colors</title>
</head>
<body>
<script>
function readFile() {
var reader = new FileReader();
reader.onload = readSuccess;
function readSuccess(evt) {
var field = document.getElementById('main');
field.innerHTML = evt.target.result;
};
reader.readAsText("/pi.txt");
}
</script>
<div id="main">
</div>
</body>
</html>
圆周率与颜色
函数readFile(){
var reader=new FileReader();
reader.onload=readSuccess;
函数readSuccess(evt){
var字段=document.getElementById('main');
field.innerHTML=evt.target.result;
};
reader.readAsText(“/pi.txt”);
}
出于安全原因,您无法获取这样的本地文件
另一个潜在问题是readAsText(以及所有读取函数)需要文件的内容,而不是文件的路径/名称。您可以从input type=“file”元素的files集合中获取它。下面是代码的工作方式:
function readFile(file) {
var reader = new FileReader();
reader.onload = readSuccess;
function readSuccess(evt) {
var field = document.getElementById('main');
field.innerHTML = evt.target.result;
};
reader.readAsText(file);
}
document.getElementById('selectedFile').onchange = function(e) {
readFile(e.srcElement.files[0]);
};
以下是JSFIDLE:
注意:此代码在safari浏览器中不起作用您可以使用ajax获取文件内容:
var reader= new XMLHttpRequest();
reader.open('GET', '/pi.txt');
reader.onreadystatechange =readSuccess();
function readSuccess(evt) {
var field = document.getElementById('main');
field.innerHTML = reader.responseText;
};
reader.send();
对我来说什么都不管用。下面你可以找到我丑陋的解决方案,但这是唯一一个成功的解决方案。在我的例子中,用户最多可以上传3个文件,因此var iPDF可以是0,1,2
var iPDF=已更新的现有文件数;
if(iPDF };代码>我有同样的问题,我找到了解决方案。除非用户具有权限,否则无法读取本地文件。您可以在页面上放置
。当文件输入更改时,您可以读取数据。那么您是在浏览器中运行此代码?试图从系统中读取本地文件?我很确定浏览器会阻止你这么做。你的浏览器控制台告诉你什么?错误控制台什么也没说。不在Safari中。“reader.onload=readSuccess;”“readSuccess”不应该是“readSuccess()”?不,它将指定“undefined”,这是函数的返回值。演示了我的问题,您不能使用addEventListener('onload',readSuccess)
,尽管有:“注意:由于FileReader继承自EventTarget,因此也可以使用addEventListener方法侦听所有这些事件。”