使用RaphaelJS确定图像何时加载到svg中

时间:2013-02-14 13:13:33

标签: javascript svg raphael

我正在尝试确定如何确定svg图像何时加载到浏览器中。我正在使用Raphael JS并尝试过:

var image = paper.image(path, 0,0,10,10);
image.node.addEventListener('load', function(){alert("test");});

$('image').on('load')  

一切都无济于事。我还使用了“onload”和“onsvgload”,但都没有。

有没有确定svg图像是否实际加载了?

我甚至尝试使用Image()对象加载图像然后调用paper.image() - 但是我得到两次调用图像(而不是使用预加载的图像);     即:

var preload = new Image();
preload.src = imgPath;
preload.addEventListener('load', function () {
    image.path = preload.src;
    //Now load image in raphael - except this still forces the browser to make another call for the image
});

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用onLoad事件处理程序可以使用另外一行代码:

var image = paper.image(path, 0,0,10,10);
var image_node = image.node;
image_node.setAttribute('externalResourcesRequired','true');
image_node.addEventListener("load", function() {
    console.log("image is loaded!");
})

您需要将externalResourcesRequired属性设置为true。您可以在此处阅读更多相关信息:http://www.w3.org/TR/SVG/struct.html#ExternalResourcesRequired