是否可以在SVG中侦听<image>
加载事件?如果是的话,怎么做?
答案 0 :(得分:14)
是的,这是可能的。
在标记中:
<image xlink:href="example.png" width="10" height="10"
onload="alert('loaded')"/>
请参阅jsfiddle。
在剧本中:
<script>
var img = document.createElementNS("http://www.w3.org/2000/svg", "image");
img.addEventListener('load', function() { alert('loaded'); });
// or alternatively:
// img.onload = function() { alert('loaded'); }
img.width.baseVal.value = 100;
img.height.baseVal.value = 100;
img.href.baseVal = "example.png";
</script>
请参阅jsfiddle。
答案 1 :(得分:6)
我发现这对使用D3创建的SVG对象不起作用,但这里的答案很有用:
How can I display a placeholder image in my SVG until the real image is loaded?
例如,这有效:
var img = innerG.append("image")
.attr('onload', function() {
console.log('loaded');
})
.attr("xlink:href", src)
.attr("width", size)
.attr("height", size);
但这不起作用:
var img = innerG.append("image")
.attr("xlink:href", src)
.attr("width", size)
.attr("height", size);
img.addEventListener('load', function() { console.log('loaded'); });