【问题标题】:Code won't run and does not show any errors either代码不会运行,也不会显示任何错误
【发布时间】:2016-11-21 13:17:19
【问题描述】:

我完全不知道为什么我的代码无法运行。在控制台中没有错误。编辑:添加更多代码

<!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){} 行不会运行,因为警报永远不会弹出,并且数据仍然是空白的。

感谢任何帮助。

谢谢

【问题讨论】:

  • 这个网站可能有帮助:javascripture.com/FileReader
  • 您需要创建一个minimal, complete, verifiable example:获得与您相同的错误所需的最小值。一个好的开始将是(但不一定限于)HTML。
  • 那么那个 fileReader 应该读取什么,你没有向它传递任何东西,所以没有什么要加载,因此没有 onload 事件?
  • 为了更清楚,您可能希望在 onload() 函数下方添加类似 reader.readAsDataURL(file); 的内容。
  • 第一个评论是回答您问题的链接。你还想要什么?

标签: javascript filereader


【解决方案1】:

你只是错过了

reader.readAsText(file);

告诉读者实际阅读选定的文件。

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

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

【讨论】:

    猜你喜欢
    • 2017-08-09
    • 2011-04-19
    • 1970-01-01
    • 2021-02-27
    • 2018-01-10
    • 2021-10-06
    • 1970-01-01
    • 2015-02-16
    相关资源
    最近更新 更多