Javascript - document.getElementById的放置(' blahblah')。innerHTML

时间:2016-08-12 13:51:56

标签: javascript html csv

我是一个javascript noob,并且有关于在脚本中放置document.getElementById(' blahblah')。innerHTML语句的问题。

更具体地说,我有以下代码

function upload(evt) {
 if (!browserSupportFileUpload()) {
   alert('The File APIs are not fully supported in this browser!');
 } else {
    var data = null;
    var file = evt.target.files[0];
    var reader = new FileReader();
    reader.readAsText(file);
    reader.onload = function(event) {
      var csvData = event.target.result;
      data = $.csv.toArrays(csvData);
      if (data && data.length > 0) {
        alert('Imported -' + data.length + '- rows successfully!');
      } else {
        alert('No data to import!');
      }
    };
    reader.onerror = function() {
        alert('Unable to read ' + file.fileName);
    };
  }
}

它基本上读取csv文件并将csv数据保存到名为" data"的变量中。

现在我的问题是,当我放置document.getElementById(' blahblah')。innterHTML = data [0] [0];在代码的末尾,它不会执行。

仅当语句放在reader.onload函数中的某个位置时才会执行。

有没有理由不在代码的底部执行?

1 个答案:

答案 0 :(得分:0)

是的,原因是当浏览器到达时会执行整个脚本。因此,浏览器会看到您的脚本,然后尝试执行document.getElementById('blahblah').innterHTML = data[0][0];,但data尚未上传。 如果您将其放在onload浏览器中,只有在上传data时才能执行该功能。