我正在使用Highcharts在PHP Web应用程序中创建图表。问题是在IE中,创建的SVG元素最终会出现重复的xmlns属性。可以在F12开发人员工具HTML选项卡中看到:
虽然图表在浏览器中显示得很好,但在尝试将其转换为带有Batik的图像文件时会出现问题,而Batik会抱怨重复属性。
我已经在IE 9和10中重现了这一点,并且还在highcharts.com上演示了图表(这是上面的截图所在的位置)。但是,Firefox不会发生这种情况。
如何防止重复属性?或者,删除它的最佳方法是什么(PHP或jQuery)?我已经尝试通过Tidy运行包含SVG的HTML,但最终会将clipPath
之类的元素转换为小写,这会导致问题。
答案 0 :(得分:4)
我们现在修复了该错误,请参阅https://github.com/highslide-software/highcharts.com/issues/1978处的链接代码。虽然元素是使用createElementNS
创建的,但只有IE9和IE10实际上为它创建了一个可见属性。因此,解决方法是添加属性,如果不存在。
答案 1 :(得分:2)
看起来像http://code.highcharts.com/highcharts.js
中的错误f=this.createElement("svg").attr({xmlns:sa,version:"1.1"})
似乎错了(对于SVG),应该是
f=this.createElementNS(xmlns:sa, "svg").attr({version:"1.1"})
虽然这种改变可能会破坏IE< 9 VML实现。也许您应该将其报告给hightcharts support