我希望在加载snap.svg
之后操纵SVG图像。不幸的是,从不调用load事件的回调。如何将加载事件注册到svg对象?
我已经创建了minimal example我的问题。
HTML:
<object data="http://upload.wikimedia.org/wikipedia/en/8/80/Wikipedia-logo-v2.svg" type="image/svg+xml" id="animation" />
使用Javascript:
alert('loading');
$('#animation').on('load', function() {
alert('loaded');
});
答案 0 :(得分:9)
来自这篇文章jQuery SVG-object tag load event
似乎jQuery只是阻止将“load”事件绑定到 非图像或文档元素,所以我只使用“官方” addEventListener()函数......
还不确定是否仍然如此,但你的问题主要是在jsfiddle,你正在执行文档“已加载”而不是文档“就绪”的代码。加载文档意味着在执行代码之前加载了所有资源,因此已经加载了svg图像。
使用此更新的jsfiddle http://jsfiddle.net/47jSh/2/
可以正常使用alert('loading');
$('#animation')[0].addEventListener('load', function() {
alert("loaded");
}, true);