我使用HighCharts与
Python一起动态创建图表.一切工作正常,但是我无法读取IE8下的未定义异常的属性“0”.不幸的是,我的客户也希望它在IE8下工作.所以他的主要功能代码:
function generateChart(series) { var chart = new Highcharts.Chart({ chart: { renderTo: 'company_chart',},xAxis: { type: "datetime",yAxis: [{ title: { text: "T1",{ title: { text: "T2",opposite: true,}],plotOptions: { series: { shadow: false },column: { shadow: false,series: series }); );
现在我的ajax请求返回一些数据,并将其存储在变量中:
chart_data = [ { type: "spline",color: '#ff0000',yAxis: 0,data: dataT1,{ type: "column",color: '#0000ff',yAxis: 1,data: dataT2,} ];
之后我调用generateChart(chart_data);.变量dataT1和dataT2的格式很好,因为它在每个其他浏览器下工作.例如,dataT1可能如下所示:
dataT1 = [ [1325721600000,1.64],[1325635200000,[1325548800000,1.7],[1325462400000,];
但IE8下仍然抛出异常.任何想法如何解决这个问题?
解决方法
那些悬挂的逗号在Internet Explorer中导致错误.摆脱它们.
这里有一个例子:
chart: { renderTo: 'company_chart',// <--- get rid of that comma },
Internet Explorer在一个对象字面量的末尾考虑一个逗号作为一个错误.实际上您应该看到“页面上的错误”警告,但错误通常不表示这种真正的根本原因.
编辑 – 显然IE8并不挑剔,虽然IE7是.
再次编辑 – 但是,IE8将数组中最后一个悬挂的逗号解释为意味着应该有一个额外的元素!换一种说法:
[1,2,3,].length
在Firefox / Chrome / Safari中为3,Internet Explorer中为4.当您尝试访问该元素时,浏览器会给您未定义.