2016-07-18 80 views
2

我完全难以理解为什么我的代码无法运行。在控制台中没有错误。编辑:添加更多代码代码不会运行,也不会显示任何错误

<!DOCTYPE html> 
    <meta charset="utf-8"> 
    <style> 
    html { 
     font-family: Helvetica, Arial, sans-serif; 
     font-size: 100%; 
     font color: white; 
     background: #333; 
    } 

    #page-wrapper { 
     width: 600px; 
     background: #FFF; 
     padding: 1em; 
     margin: 1em auto; 
     min-height: 300px; 
     border-top: 5px solid #69c773; 
     box-shadow: 0 2px 10px rgba(0, 0, 0, 0.8); 
    } 

    h1 { 
    margin-top: 0; 
    } 

    #fileDisplayArea { 
    margin-top: 2em; 
    width: 100%; 
    overflow-x: auto; 
    } 

    body { 
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 
    width: 960px; 
    height: 500px; 
    position: relative; 
    } 
</style> 

<body> 
    <div id="page-wrapper"> 

     <h1>File to Matrix</h1> 
     <div> 
      Select a text file: 
      <input type="file" id="fileInput"> 
     </div> 
     <pre id="fileDisplayArea"><pre> 

    </div> 
</body> 
<script> 

    var data = []; //will hold data from file 

    window.onload = function() { 
     var fileInput = document.getElementById('fileInput'); 
     var fileDisplayArea = document.getElementById('fileDisplayArea'); 

     fileInput.addEventListener('change', function(e) { 
      var file = fileInput.files[0]; 

      var reader = new FileReader(); 
      var str = ''; 
      reader.onload = function(e) { 
       str = reader.result; 
       alert("does this even ever run?"); 
       var temp = str.split('\n'); 
       for(var i = 0; i < temp.length; i++) 
        data.push(temp[i].split('\t')); 
      } 
      alert("this runs"); 
     }); 
    } 
</script> 

尝试阅读用户选择的.tsv并将数据转换为矩阵。
reader.onload = function(e){}将不会运行,因为警报永远不会弹出,并且数据仍然为空。

任何帮助表示赞赏。

感谢

+0

此网站可能有所帮助:http://www.javascripture.com/FileReader –

+1

您需要创建一个[最小,完整,可验证的示例](http://stackoverflow.com/help/mcve):必要的最小值像你一样得到同样的错误。一个好的开始将是(虽然不一定限于)HTML。 – rockerest

+0

那么fileReader应该读什么,你没有向它传递任何东西,所以没有什么要加载,因此没有'onload'事件? – adeneo

回答

0

你只是缺少

reader.readAsText(file); 

要告诉读者,以实际读取选定的文件。

工作例如:https://jsfiddle.net/zck7z3aa/2/

我还添加了fileDisplayArea.innerHTML = reader.result;显示文件中PRE标签的内容。

+1

我知道我错过了一些东西;谢谢! – averagebegginnercoder

相关问题