Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVG';g';IE8中的元素抛出错误(使用r2d3、d3.图表)_Svg_Internet Explorer 8_D3.js - Fatal编程技术网

SVG';g';IE8中的元素抛出错误(使用r2d3、d3.图表)

SVG';g';IE8中的元素抛出错误(使用r2d3、d3.图表),svg,internet-explorer-8,d3.js,Svg,Internet Explorer 8,D3.js,我试图在IE8中使用它来绘制一个多系列的线形图 在IE8的页面加载中,我得到以下错误: TypeError:无法获取未定义或空引用未定义的属性“attr” 由以下d3代码触发: chart.areas.grid = chart.base.append('g') .classed('grid', true) .attr('width', chart.margins.left - chart.margins.right) .attr('height', chart.h - chart.m

我试图在IE8中使用它来绘制一个多系列的线形图

在IE8的页面加载中,我得到以下错误:

TypeError:无法获取未定义或空引用未定义的属性“attr”

由以下d3代码触发:

chart.areas.grid = chart.base.append('g')
  .classed('grid', true)
  .attr('width', chart.margins.left - chart.margins.right)
  .attr('height', chart.h - chart.margins.bottom - chart.margins.top)
  .attr('transform', 'translate(' + chart.margins.left + ',0)'); 
如果我用其他元素替换“g”元素,代码将继续到下一个“g”元素并抛出相同的错误

考虑到其他人已经成功地将IE8中的“g”元素与r2d3结合使用,我不知道是什么导致了这种情况


我还使用了相对较新的框架,它刚刚开始提供IE8支持。然而,这似乎不太可能导致问题,因为触发问题的代码是纯d3

如果使用显式名称空间:chart.base.append('svg:g'),会发生什么情况?感谢您的建议-不幸的是,我仍然收到相同的错误。我能够解决这个问题的唯一方法是将所有svg g元素更改为svg:矩形,并带有fill:none和stroke:none。在进一步挖掘之后,似乎只有在指定“width”和“height”属性时才会触发错误。其他属性如“transform”或“fill”可以毫无错误地应用。我现在已经解决了这个问题,在css中为“g”元素指定宽度和高度,而不是使用d3 attr方法。虽然不理想,但效果很好。元素没有明确的宽度和高度(g的边界框是从子元素派生的)。我想IE会把这当作一个错误,而不是忽略它。