1

円グラフにはハイチャートを使用しています。IE7 のスクリプトには次のような問題があります。

SCRIPT5007: Unable to get value of the property '0': object is null or undefined highcharts.js, line 10 character 3841

スクリプトのコード行は次のとおりです。

if(typeof a[0]==="number")
    this.x=a[0],this.y=a[1];
else if(d==="object"&&typeof a.length!=="number") {
    if(u(this,a),this.options=a,a.dataLabels)c._hasPointLabels=!0
}
else if(typeof a[0]==="string")
    this.name=a[0],this.y=a[1];

この問題を解決するにはどうすればよいですか?

4

4 に答える 4

4

これは私にも起こりました。デバッグ後、一連のデータ配列の最後の要素の後に余分なコンマ「,」があったため、問題が発生したことが最終的にわかりました。

問題の例は、この JSFiddle にあります: http://jsfiddle.net/lewisdavidcole/Be43c/14/

エラーは IE7 と IE8 でのみ表示されました。より寛容な IE9、Chrome、Firefox では問題なく動作しました。この問題を修正するには、次のように JSFIddle の 266 行目にある余分なコンマを削除します。

}, //TO FIX, REMOVE THE EXTRA COMMA HERE WHICH CREATES PROBLEMS IN IE7 and IE8

Creates

var myArray = [1,2,3,4,5,]; an issue in IE7 and IE8, it should never end in aコンマ.

于 2013-01-30T18:38:09.957 に答える
1

これは一般的な構成ミスであるため、Highcharts に修正を追加しました。http://jsfiddle.net/highcharts/sw5rY/を参照してください。

series: [{
    data: [29.9, 71.5, 106.4, 129.2,],
    showInLegend: true
}]
于 2013-01-31T14:19:26.470 に答える
0

警告(a [0])して、配列要素に何らかの値があるかどうかを確認してください。そうでない場合は、コードの前にこの条件を使用してください。-

if(a.length>0){
//your code
}
于 2013-01-04T06:00:39.090 に答える
0

これを試して:

if(a.length>0){
if(typeof a[0]==="number")
    this.x=a[0],this.y=a[1];
else if(d==="object"&&typeof a.length!=="number") {
    if(u(this,a),this.options=a,a.dataLabels)c._hasPointLabels=!0
}
else if(typeof a[0]==="string")
    this.name=a[0],this.y=a[1];
}
于 2013-01-04T06:05:27.907 に答える