使用d3将图像添加到svg容器中,这在FF和Safari上不起作用
Adding image to svg container using d3 not working on FF and Safari
我正在使用这里提出的解决方案如何使用D3.js将图像添加到svg容器中,比如这个
svg.selectAll()
.data(chart.data.values)
.enter()
.append('svg:image')
.attr('class', 'logo-legend')
.attr('x', function (d, i) {
return d.position;
}
)
.attr('y', 251)
.attr('xlink:href', function (d, i) {
return d.fileName;
});
它在Chrome上有效,但在FF和Safari上不起作用。我可以在firebug上看到图像是在html上创建的,但它们只是没有显示出来。知道为什么吗?
我可以看到在Chrome上创建的元素是
<image class="logo-legend" x="46.5" y="251" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/img/services/logo.png"></image>
在FF上是
<image class="logo-legend" x="46.5" y="251" href="/img/services/logo.png">
W3规范需要显式的高度/宽度属性。来自文档(粗体显示我的):
有一些重要的事情需要注意(参考W3规格):
如果不设置x或y属性,则它们将设置为0。
如果不设置高度或宽度属性,它们将被设置为0.
高度或宽度属性为0将禁用形象
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- 这在JavaScript中是一个好的变量名吗
- 咖啡'@'或者这在函数和类中
- 这在javascript中做了什么
- [AutoIt]如何使用FF.au3在FireFox上的页面中运行javascript
- 这在 Object 方法中不引用对象,而是引用函数绑定到的标记
- 为什么这在 jsfiddle 中有效,但在我的文档中不起作用
- 这在javascript函数中的作用域
- 比较两个对象数组中的重复对象,并在其'这在JavaScript中不是重复的
- 用javascript获取页面的当前URL,这在平板电脑上有效
- 这在imacrosjavascript中可能吗?尝试了很多方法都没有成功
- 这在我的函数 *t 中没有定义
- 这在javascript中是什么意思:var obj = (function(){ .. })().
- Google script/JavaScript:这在对象后面做什么:(对象名称||{});.
- 这在AngularJS中可能吗?
- 这在javascript中的循环有什么问题
- 这在 Java 脚本中是什么类型的对象?以及如何将这种元素添加到此对象中
- 这在IE中有什么问题
- 使用d3将图像添加到svg容器中,这在FF和Safari上不起作用
- 有人能告诉我这在ff和ie中是如何工作的吗?