Internet explorer 在IE8中添加'tr'标记时使用R2D3.js的参数无效
我有一个使用D3.js的应用程序,但我必须使它与IE8兼容。。。所以我使用了R2D3.js,它似乎是SVG操作的一个非常好的替代品。但是对于基本标签 我使用它来管理表中的数据,但当涉及到附加新行时,即: 行:8450/错误:参数无效 我环顾四周,但没有发现任何线索 下面是我的代码的一个简单示例: 这在Firefox上非常有效,但在IE8上崩溃 这是一本书 有人能帮我吗Internet explorer 在IE8中添加'tr'标记时使用R2D3.js的参数无效,internet-explorer,d3.js,internet-explorer-8,invalid-argument,Internet Explorer,D3.js,Internet Explorer 8,Invalid Argument,我有一个使用D3.js的应用程序,但我必须使它与IE8兼容。。。所以我使用了R2D3.js,它似乎是SVG操作的一个非常好的替代品。但是对于基本标签 我使用它来管理表中的数据,但当涉及到附加新行时,即: 行:8450/错误:参数无效 我环顾四周,但没有发现任何线索 下面是我的代码的一个简单示例: 这在Firefox上非常有效,但在IE8上崩溃 这是一本书 有人能帮我吗 谢谢。查看R2D3源代码,它使用的是addEventListener方法,该方法仅从IE9开始受支持: 这就解释了为什么它会在
谢谢。查看R2D3源代码,它使用的是addEventListener方法,该方法仅从IE9开始受支持:
这就解释了为什么它会在IE8上崩溃我没有仔细分析代码,但我很确定它使用了一个自定义函数来polyfill addEventListener。R2D3的全部要点是它提供了IE7/8支持。但是它如何与SVG元素一起工作呢?它不应该像基本元素那样崩溃吗?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!--[if lte IE 8]><script src="r2d3.js" charset="utf-8"></script><![endif]-->
<!--[if gte IE 9]><!-->
<script src="d3.min.js" charset="utf-8"></script>
<!--<![endif]-->
</head>
<body>
<table>
</table>
<script>
var dataset = [
{
name: 'Foo',
age: 42
},
{
name: 'Bar',
age: 21
}
];
var table = d3.select('table');
table.selectAll('tr').data(dataset)
.enter().append('tr')
.selectAll('td')
.data(function(d) {
return [d.name, d.age];
})
.enter().append('td')
.text(function(d) {return d});
</script>
</body>
<html>
R2D3Element.prototype.addEventListener = function(type, listener) {
this.domNode.childNodes[i].r2d3.addEventListener(type, listener);
}