简单的Highcharts图表在Firefox中不起作用

时间:2017-11-15 13:39:02

标签: javascript csv firefox highcharts

我在使用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失败了。我在控制台中没有出现任何错误或警告。

我该如何处理?

1 个答案:

答案 0 :(得分:2)

我发现为什么它在firefox中不起作用。 CSV文件的编码是带有BOM的UTF-8!出于某种原因,Firefox无法解析它。我已将CSV保存为ANSI,并按预期工作。我想我可以通过用AJAX读取文件来解决这个问题。