我刚刚尝试使用 d3.js v5 获取 CSV 文件。数据提取在除 Internet Explorer 10+ 之外的所有浏览器中都可以正常工作。
d3.csv("test.csv").then(function (data) {
console.log(data);
});
这表明错误提取未在 Internet Explorer 中定义。
我正在使用 d3.v5.min.js。
最佳答案
d3.csv
(以及所有其他 D3 获取方法)在内部使用 Fetch API。如果您查看 MDN page ,在浏览器兼容性表中,您会看到 Internet Explorer 不支持 Fetch API(如您在问题中所说,任何版本,不仅是 10+)。
因此,解决方案是为 Fetch 使用 polyfill(对于 promises 也是如此,请参阅下面的评论)。在线有多种选择。
作为一个建议,不要嗅探用户代理,而是尝试检查浏览器是否支持 Fetch。可能最简单的方法是使用 window.fetch
。以下代码段将在大多数浏览器中记录一个真值,在 IE 中记录一个假值(以及在其他不支持 Fetch 的浏览器中,如果存在):
console.log(window.fetch)
因此,在您的代码中,您执行如下操作:
if(!window.fetch){
//load the polyfill here
};
关于javascript - 在 Internet Explorer 上获取 csv 数据失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56847427/