首页 > 解决方案 > IE11 预期的标识符、字符串或数字错误

问题描述

嗨,我正在用变量填充 C3JS 值,这个脚本除了在 IE11 中会在“颜色:{”行上抛出错误“预期标识符、字符串或数字错误”

这是自定义颜色的 C3JS 示例 http://c3js.org/samples/data_color.html

在我的情况下,引用的值在变量内

我发现这个解决方案除了在 IE11 上有效

var c1L = "Company 1";
var c2L = "Company 2";
var c3L = "Company 3";

var c1F = 1100;
var c2F = 550;
var c3F = 300;

var c1C = "#001122";
var c2C = "#001133";
var c3C = "#001144";

var chartPortafolio01 = c3.generate({
                                bindto: d3.select('#chart-portafolio-01'),
                                data: {
                                    columns: [
                                        [c1L, c1F],
                                        [c2L, c2F],
                                        [c3L, c3F]
                                    ],
                                    type : 'donut',
                                    colors: {
                                        [c1L]: c1C,
                                        [c2L]: c2C,
                                        [c3L]: c3C
                                    }
                                },
                                donut: {
                                    title: "€ " + formattaNumHtml(clientiTotale)
                                },
                                legend: {
                                    show: false
                                }
                            });

标签: javascriptc3.js

解决方案


这就是我修复的方式

var c1L = "Company 1";
var c2L = "Company 2";
var c3L = "Company 3";

var c1F = 1100;
var c2F = 550;
var c3F = 300;

var c1C = "#001122";
var c2C = "#001133";
var c3C = "#001144";

// fix IE11
var colorsObj = {};

for (var i = 1; i <= 3; i++) {                      
    colorsObj[eval("c" + i + "L")] = eval("c" + i + "C");                       
}

var chartPortafolio01 = c3.generate({
                bindto: d3.select('#chart-portafolio-01'),
                data: {
                    columns: [
                        [c1L, c1F],
                        [c2L, c2F],
                        [c3L, c3F]
                    ],
                    type : 'donut',
                    colors: colorsObj
                },
                donut: {
                    title: "€ " + formattaNumHtml(clientiTotale)
                },
                legend: {
                    show: false
                }
            });

推荐阅读