我使用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
- });
- );@H_403_3@
现在我的ajax请求返回一些数据,并将其存储在变量中:
chart_data = [ { type: "spline",color: '#ff0000',yAxis: 0,data: dataT1,{ type: "column",color: '#0000ff',yAxis: 1,data: dataT2,} ];@H_403_3@之后我调用generateChart(chart_data);.变量dataT1和dataT2的格式很好,因为它在每个其他浏览器下工作.例如,dataT1可能如下所示:
dataT1 = [ [1325721600000,1.64],[1325635200000,[1325548800000,1.7],[1325462400000,];@H_403_3@但IE8下仍然抛出异常.任何想法如何解决这个问题?
解决方法
那些悬挂的逗号在Internet Explorer中导致错误.摆脱它们.
这里有一个例子:
- chart: {
- renderTo: 'company_chart',// <--- get rid of that comma
- },@H_403_3@
Internet Explorer在一个对象字面量的末尾考虑一个逗号作为一个错误.实际上您应该看到“页面上的错误”警告,但错误通常不表示这种真正的根本原因.
编辑 – 显然IE8并不挑剔,虽然IE7是.
再次编辑 – 但是,IE8将数组中最后一个悬挂的逗号解释为意味着应该有一个额外的元素!换一种说法:
[1,2,3,].length@H_403_3@在Firefox / Chrome / Safari中为3,Internet Explorer中为4.当您尝试访问该元素时,浏览器会给您未定义.