在ie8里highcharts报#14错误,柱状图一直显示不出来,在谷歌可以正常运行,求大神指教

缘未依 发布于 2017/04/28 17:33
阅读 798
收藏 0

NGINX社区官方微服务训练营,深入了解K8s网络,线上课程+专家答疑,立即加入>>>

加载中
0
bug操手
bug操手
https://www.highcharts.com/errors/14 看看你是不是传了string数据,而不是number。
缘未依
缘未依
$('#container').highcharts({ chart: { type: 'column' }, title: { text: ''
0
尚浩宇
尚浩宇

贴出来你的初始化js,可能是某个函数ie8不支持

 

0
缘未依
缘未依

$('#container').highcharts({
                    chart: {
                        type: 'column'
                    },
                    title: {
                        text: ''
                    },
                    xAxis: {
                        type: 'category'
                    },
                    yAxis: {
                        title: {
                            text: yaxis
                        }
                    },
                    legend: {
                        enabled: false
                    },
                    plotOptions: {
                        series: {
                            borderWidth: 0,
                            dataLabels: {
                                enabled: true,
                                format: '{point.y:.0f}'
                            }
                        }
                    },
                    tooltip: {
                        headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
                        pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.0f}</b>' + unit + '<br/>'
                    },
                    series: [{
                        name: '图层',
                        colorByPoint: true,
                        data: brandsData
                    }],
                    credits: {
                        text: '',
                        href: ''
                    },
                    drilldown: {
                        series: drilldownSeries
                    }
                });

这个之前可以alert() ,这段代码之后alert()就不能弹出了,我感觉是这段代码的问题,但是找不到到底问题出在哪里,指教!

bug操手
bug操手
brandsData和drilldownSeries格式呢,你在console里输出这两个对象看看。
0
bug操手
bug操手

引用来自“缘未依”的评论

$('#container').highcharts({
                    chart: {
                        type: 'column'
                    },
                    title: {
                        text: ''
                    },
                    xAxis: {
                        type: 'category'
                    },
                    yAxis: {
                        title: {
                            text: yaxis
                        }
                    },
                    legend: {
                        enabled: false
                    },
                    plotOptions: {
                        series: {
                            borderWidth: 0,
                            dataLabels: {
                                enabled: true,
                                format: '{point.y:.0f}'
                            }
                        }
                    },
                    tooltip: {
                        headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
                        pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.0f}</b>' + unit + '<br/>'
                    },
                    series: [{
                        name: '图层',
                        colorByPoint: true,
                        data: brandsData
                    }],
                    credits: {
                        text: '',
                        href: ''
                    },
                    drilldown: {
                        series: drilldownSeries
                    }
                });

这个之前可以alert() ,这段代码之后alert()就不能弹出了,我感觉是这段代码的问题,但是找不到到底问题出在哪里,指教!

https://code.hcharts.cn/demos/hhhhDs

缘未依
缘未依
回复 @yunfound : 这是打印的brandsData和drilldownSeries数据结果显示
bug操手
bug操手
回复 @缘未依 : 就是你的数据类型不正确。看到我上面的回复了吗,把数据打印出来看看。
缘未依
缘未依
这个代码不是我写的,任务是让我改兼容性问题,在ie8里面报错#14,我找不到哪里错了,还请明说~
0
简数科技
简数科技

#14是数值类型错误

需要的是数值类型,传入的却是字符串。

当传入的数据是字符串时,就会导致这个错误,例如下面代码就会出错:

series: [{
    data: ["3", "5", "1", "6"]
}]

Highcharts 需要的数据必须是数值类型,在 JS 中可以通过 parseInt 和 parseFloat 来讲字符串转换成数值类型,实例代码:

var data = ["3", "5", "1", "6"];

for(var i=0; i<data.length; i++) {
    // parseInt 用于转出整数,parseFloat 用于转换浮点型数值
    data[i] = parseInt(data[i]);
}

series: [{
    data: data
}]

为了更好的性能,Highcharts 默认只检查第一个数据的类型(从 2.3 开始)。

这个平台上回答Highcharts问题较少,建议直接在Highcharts中文官网论坛上提问哦

1、Highcharts 中文官网:https://www.hcharts.cn/

2、Highcharts 中文学习教程:https://www.hcharts.cn/docs

3、Highcharts 中文论坛:https://bbs.hcharts.cn/forum.php

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部