6

svg画像がいつブラウザにロードされたかを判断する方法を見つけようとしています。私はRaphaelJSを使用していて、試しました:

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()を呼び出してみましたが、(事前に読み込まれた画像を使用する代わりに)画像を2回呼び出しました。すなわち:

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
});

何か案は?

4

1 に答える 1

3

onLoadイベントハンドラーの使用は、コードを1行追加するだけで機能します。

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をご覧ください。

于 2013-05-28T01:16:58.837 に答える