【问题标题】:d3 svg drawing rect bar chart not work in IE11d3 svg 绘制矩形条形图在 IE11 中不起作用
【发布时间】:2019-08-02 15:54:21
【问题描述】:
我正在使用 d3 完成一个动态条形图,它在谷歌浏览器中是完美的工作。
但是,它在 IE11 中不起作用。
这里是my code
问题是:
-
只对绘制背景表格起作用,而条形图不起作用。
这是IE中的实际情况
My code run in IE
您可以看到第一部分,绘制背景在 IE 中完美运行,但是条形图丢失并且运行没有任何错误。
我用svg.polygon来画星星,我把画星星的代码分成两部分:第一部分我在表格内部(条形图上方)绘制,第二部分我在表格外部绘制,用于成为传奇。
图例中的星星可以正常打印,但是表格中的星星都被遗漏了,IE给出了错误代码:
SVG4602: SVG Point list has incorrect format and could not be completely parsed.
【问题讨论】:
标签:
javascript
internet-explorer
d3.js
svg
internet-explorer-11
【解决方案1】:
我解决了我的问题。
代码引起的问题
linear((new Date(d.collect_date) - starttime)/cal_hour+16)
在 IE 中,由于某些日期设置,它无法运行代码 new Date(d.collect_date)(我猜)
所以在这种情况下,linear(...) 这段代码不会返回任何东西,它最终不会打印出任何条形图。
所以我找到了改变获取日期方式的方法,它成功打印了条形字符,表格中的星星也是同样的问题。
所以我把所有get x location方法改成:
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 上都可以使用