我刚刚尝试使用d3.js v5 提取CSV文件。除了 Internet Explorer 10 + 以外,所有浏览器都可以正常进行数据提取。
d3.csv("test.csv").then(function (data) {
console.log(data);
});
这表明Internet Explorer中未定义错误提取。
我正在使用d3.v5.min.js。
答案 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
};