2010-12-27 4 views
0

Ни один из вопросов, которые я искал, по-видимому, не помогает мне в этом.Получение событий из встроенного документа SVG

Я встраивание документа SVG таким образом:

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

И тогда я пытаюсь искать элементы в 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 SLOT1 переменные становятся установлены, и OnClick свойство slot1 также получать множество. Но это событие никогда не приходит.

Боковой вопрос: есть ли лучший способ получить объект SVGDocument root, чем я его делаю? Я добрался туда пробным путем и ошибкой, но мне кажется, что он дрожит, и я не смог найти что-либо подобное в Интернете. Было бы неплохо, если бы jQuery мог попасть в документ SVG, но я могу жить без него, если придется.

ответ

0

Я никогда не получал это, чтобы работать, но я обнаружил, что я хочу делать хорошо работает в HTML 5 в браузерах, которые его поддерживают. Элемент svg интегрируется в документ DOM так же, как и все остальное, поэтому jQuery и getElementById работают так же, как и для других элементов.

1

Создание функций в test.svg, которые требуют правильного кода в файле с fixup функции

Так что в вашем файле test.svg вы будете иметь что-то вроде этого

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

}

Смежные вопросы