2017-11-15 6 views
1

ハイチャートやFirefoxで奇妙な問題が発生しています。何らかの理由で、このコードは、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( 'ダウンロード/ myfile.csv'、機能(データ){// がライン

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

数字1を解析するとき、どのように試しましたか? このように:parseFloat(1)または以下のように:parseFloat( "1")? –

+0

私はこれを好きです: parseFloat(items [1]) 項目[1]は、CSVの各行の2番目の列とします。 Chromeで動作する理由とFirefoxで動作しない理由を理解できません。 これを置き換える: y:parseFloat(items [1]) と y:1 の結果はフラットになります。 – Shadowcaster

答えて

2

私はそれがFirefoxでうまくいかなかった理由を発見しました。 CSVファイルのエンコーディングはBOM付きのUTF-8です!なんらかの理由でFirefoxは解析できません。私はCSVをANSIとして保存して、期待どおりに動作します。私はAJAXでファイルを読むことでこれを解決できると思います。

関連する問題