2012-07-09 12 views
12

क्या एसवीजी में <image> लोड इवेंट सुनना संभव है? यदि हां, तो यह कैसे करें?क्या एसवीजी में छवि लोड इवेंट सुनना संभव है?

+0

क्या "वास्तविक" का मतलब "संभव" जैसा ही है? – JJJ

+0

हां, वास्तविक == संभव – Rustam

+0

और से आपका मतलब है? – JJJ

उत्तर

12

हाँ यह संभव है।

मार्कअप में:

<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 देखें।

+0

मैं इस काम को पाने में असमर्थ हूं, न तो मार्कअप और न ही स्क्रिप्ट के साथ; क्या आप एक उदाहरण प्रदान करने में सक्षम हैं? – Richard

+0

http://www.w3.org/TR/SVG/interact.html#SVGEvents, क्या आपने संदर्भित बाहरी स्रोतों की आवश्यकता है, जैसा कि लिंक का उल्लेख किया गया है? – neo

+0

@neo: बाहरी स्रोत स्रोत आवश्यक विशेषता यहां आवश्यक नहीं है। –

6

मैंने पाया कि यह डी 3 का उपयोग कर बनाया एसवीजी वस्तु के लिए काम नहीं होगा, लेकिन इस सवाल का जवाब यहाँ महान काम किया:

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'); }); 
+1

लेकिन विशेषता का नाम HTML के रूप में है: 'ऑनलोड'। लेकिन घटना का नाम अलग है: 'एसवीजी लोड' 'लोड' नहीं। Http://www.w3.org/TR/SVG/interact.html#LoadEvent देखें – mems

संबंधित मुद्दे