d3 svg 绘制矩形条形图在 IE11 中不起作用

d3 svg drawing rect bar chart not work in IE11

我正在使用 d3 完成一个动态条形图,它在 google chrome 中非常完美。

但是,它在 IE11 中不起作用。

这里是my code

问题是:

  1. 只能绘制背景table,但条形图不起作用。 下面是IE中的实际情况 My code run in IE

    您可以看到第一部分,绘制背景在 IE 中完美工作,但是条形图被遗漏并且 运行 没有任何错误。

  2. 我用svg.polygon画星星,我把画星星的代码分成两部分:第一部分我在table里面画(在条形图上),第二部分我在table外面画的,曾经是传说。

图例中的星星可以正常打印,但是table中的所有星星都漏掉了,IE给出错误码:

SVG4602: SVG Point list has incorrect format and could not be completely parsed.

我解决了我的问题。

代码引起的问题

linear((new Date(d.collect_date) - starttime)/cal_hour+16)

在 IE 中,由于某些日期设置,它不能 运行 代码 new Date(d.collect_date)(我猜) 所以在这种情况下,linear(...) 这段代码不会 return 任何东西,它最终不会打印出任何条形图。

所以我找到了改变获取日期方式的方法,它成功打印了条形字符,table中的星星也是同样的问题。

所以我把所有获取x位置的方法改成:

var temp_x = d.start.split(" ");
            var temp_y = temp_x[0].split("-");
            var temp_z = temp_x[1].split(":");
                return linear((new Date(new Date(temp_y[0],(temp_y[1]-1),temp_y[2],temp_z[0],temp_z[1],temp_z[2])) - starttime)/cal_hour+16);

它在 chrome 和 IE

上都有效