我在使用highcharts和Firefox时遇到了一个奇怪的问题。出于某种原因,此代码适用于Chrome,但不适用于Firefox:
var options = {
chart: {
renderTo: 'visits',
backgroundColor:null,
type: 'line'
},
exporting: { enabled: false },
title: {
text: 'Visits'
},
xAxis: {
categories: [],
tickInterval: 7,
labels: {
style: {
fontSize:'8px'
}}
},
yAxis: {
labels: {
enabled: false
},
title: {
text: null
}
},
tooltip: {
pointFormat: '{point.y:.0f} Visits'
},
legend: {
enabled: false
},
series: [{
name: [],
data: []
}]};
$。get('downloads / myfile.csv',function(data){ //拆分行
var lines = data.split('\n');
$.each(lines, function(lineNo, line) {
var items = line.split(',');
if (lineNo !== 0) {
options.series[0].data.push({
name: items[0],
y: parseFloat(items[1])
});
options.xAxis.categories.push(x);
}
});
var chart = new Highcharts.Chart(options); });
我的CSV文件包含以下数据:
2017-09-01,65
2017-09-02,36
2017-09-03,36
2017-09-04,91
2017-09-05,75
2017-09-06,120
由于项目[1]是数字,为什么它不能在Firefox中显示?如果我用普通数字替换项目[1],比如“1”,我得到一条扁平线,这意味着由于某种原因,parseFloat失败了。我在控制台中没有出现任何错误或警告。
我该如何处理?
答案 0 :(得分:2)
我发现为什么它在firefox中不起作用。 CSV文件的编码是带有BOM的UTF-8!出于某种原因,Firefox无法解析它。我已将CSV保存为ANSI,并按预期工作。我想我可以通过用AJAX读取文件来解决这个问题。