在Internet Explorer上获取CSV数据失败

时间:2019-07-02 07:31:19

标签: javascript internet-explorer d3.js fetch-api

我刚刚尝试使用d3.js v5 提取CSV文件。除了 Internet Explorer 10 + 以外,所有浏览器都可以正常进行数据提取。

d3.csv("test.csv").then(function (data) {
        console.log(data);
});

这表明Internet Explorer中未定义错误提取。

我正在使用d3.v5.min.js。

1 个答案:

答案 0 :(得分:1)

d3.csv(以及所有其他D3提取方法)在内部使用Fetch API。如果查看MDN page,在浏览器兼容性表中,您会看到Internet Explorer不支持Fetch API(如您所说,任何版本,不仅是10+,在您的问题中。)

因此,解决方案是将Polyfill用于Fetch(以及关于promise的信息,请参见下面的注释)。在线有多个选项。

作为建议,而不是嗅探用户代理,请尝试检查浏览器是否支持Fetch。可能最简单的方法是使用window.fetch。以下代码段将在大多数浏览器中记录一个真实值,而在IE中(以及在其他不支持Fetch的浏览器中,如果存在的话)记录一个错误值:

console.log(window.fetch)

因此,在您的代码中,您将执行以下操作:

if(!window.fetch){
    //load the polyfill here
};