2012-01-08 9 views
0

私は自分のウェブサイトにいくつかの埋め込みsvgファイルを持っています。 onmouseclick、onmouseout、onmousemove関数を使用したいと思いますが、動作しません。それは可能ですか?埋め込みデータにマウス機能を呼び出す方法は?

+2

rect.svgあなたは何を試したのですか?ここにいくつかのコードを貼り付けてください –

+0

私はwmode = "transparent"をembedに、mouseclick関数を親divに与えましたが、うまくいきません –

答えて

2

埋め込みSVGスクリプトが同じドメインから提供される場合にのみ可能です。埋め込みコンテンツの読み込みが完了したら、getSVGDocumentで実際のsvgドキュメントを取得したいとします。そこからイベントを追加します。このデモをチェックアウト:

<svg xmlns="http://www.w3.org/2000/svg" 
    version="1.1" 
    width="300" 
    height="200"> 
    <rect x="50" y="25" width="200" height="150" fill="red"/> 
</svg> 

eventsDemo.js

var log, emb, svgDoc, rect; 

log = function (e) { 
    console.log(e.type); 
}; 

emb = document.querySelector('embed'); 

emb.addEventListener('load', function() { 
    svgDoc = emb.getSVGDocument(); 
    rect = svgDoc.querySelector('rect'); 

    rect.addEventListener('click',  log); 
    rect.addEventListener('mousemove', log); 
    rect.addEventListener('mouseout', log); 
}); 

demo.html

<!doctype html> 
<html> 
<head> 
</head> 
<body> 
    <embed type='image/svg+xml' src='rect.svg'> 
    <script src='eventsDemo.js'></script> 
</body> 
</html> 
関連する問題