Javascript FileReader onload没有触发

Cod*_*y B 16 javascript html5

我有一段时间没有使用JavaScript,我似乎无法读取文本文件并显示内容.

我试着onloadonloadend.如果我只是把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> 
Run Code Online (Sandbox Code Playgroud)

LUK*_*UKE 19

出于安全原因,您无法获取此类本地文件.

另一个潜在的问题是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]);
};
Run Code Online (Sandbox Code Playgroud)

这是jsfiddle:http: //jsfiddle.net/fstreamz/ngXBV/1/

注意:此代码在safari浏览器中不起作用

  • 不,它将分配“未定义”,即函数的返回值。 (2认同)