2010-12-27 6 views
0

내가 검색 한 질문 중 아무 것도이 작업을 도와주지 않는 것 같습니다.포함 된 SVG 문서에서 이벤트 가져 오기

<embed onload="fixup()" id="zgraphic" src="images/test.svg" width="500" type="image/svg+xml" /> 

을 그리고 나는 SVG 요소를 찾아 내고 그들에게 이벤트 처리기를 추가하려고 :

내가 thusly 히 SVG 문서를 내장하고있다. 이미 jQuery가 SVG 요소를 찾지 않는다는 것을 알게되었습니다.

<script type="text/javascript"> 

function blah(event) { 
    alert("Got event: " + event) 
} 

    var svg; 
    var slot1; 

function fixup() { 
    svg = jQuery("#zgraphic")[0].getSVGDocument(); 
    slot1 = svg.getElementById("slot1"); 
    slot1.onclick = blah; 
    alert("Set onclick for " + slot1); 
    } 
</script> 

것은 내가 SVG와 슬롯 1 변수를 설정지고 있음을 볼 수있다 불을 지르고를 사용하고 슬롯 1의 OnClick 속성도 설정지고 : 나는 머리이 있습니다. 그러나 그 사건은 결코 오지 않습니다.

사이드 질문 : 내가하는 방식보다 루트 SVGDocument 객체를 얻는 더 좋은 방법이 있습니까? 나는 시행 착오로 거기에 갔지만 나에게는 불안정 해 보였고 나는 웹상에서 그런 것을 찾을 수 없었다. jQuery가 SVG 문서에 접근 할 수 있다면 좋겠지 만, 내가해야한다면 jQuery없이 SVG 문서를 사용할 수있다.

답변

0

당신은 도장의 GFX 한 번 봐 걸릴 수도 있습니다 : http://docs.dojocampus.org/dojox/gfx

그것은 브라우저의 벡터 기능을 액세스하기위한 API입니다.

0

나는이 기능을 전혀 사용하지 못했지만 HTML 5에서 지원하는 브라우저에서 제대로 작동하고 있음을 발견했습니다. svg 요소는 다른 것과 마찬가지로 문서 DOM에 통합되므로 jQuery와 getElementById는 다른 요소와 마찬가지로 작동합니다.

1

는이

function blah(e) { 
e.stopPropagation(); 
window.parent.blah(e); 

}

뭔가를해야합니다 당신의 test.svg 파일에

그래서 fixup 기능을 사용하여 파일에 올바른 코드를 호출 test.svg 함수 만들기

관련 문제