1

我正在为饼图使用 highcharts。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

发生错误是因为在 IE7 和 IE8 中定义了像 Creates an issue 这样的数组

var myArray = [1,2,3,4,5,]; ,它不应该以逗号结尾。

于 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

尝试这个:

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 回答
0

请 alert(a[0]) 并查看该数组元素是否具有某些值如果没有,请在您的代码之前使用此条件:-

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