将csv文件加载到d3而不发送到服务器

时间:2013-12-09 20:37:51

标签: javascript csv d3.js

无论如何将csv数据加载到d3.csv而不将其发送到服务器?我正在尝试使用dataURI,但它不起作用......

我有一个表单,用户可以从他们的计算机中选择一个csv文件。

<input type='file' onchange="readURL(this);"/>

这会导致readURL函数从该文件创建一个dataURI。

function readURL(input) {
  if (input.files && input.files[0]) {
      var reader = new FileReader();

      reader.onload = function (e) {
          $('#file_url')
            .attr('data-file-url', f.target.result);
      };

      reader.readAsDataURL(input.files[0]);
  }
}

然后我有一个脚本从#file_url div中窃取dataURI并将其输入d3.csv:

var address = $('#file_url').attr('data-file-url');
d3.csv(address,function(csv){
    do stuff with that csv
}

问题是我遇到了跨源错误。

1 个答案:

答案 0 :(得分:0)

您可以使用File API,但不支持密切浏览器,特别是IE。有关详情,请查看this