Как получить доступ к contentDocument элемента встраивания в Dart?

Я загружаю SVG в файл HTML с элементом внедрения. Но теперь я хочу изменить цвет градиента в этом SVG. В JavaScript есть contentDocument, к которому я могу получить доступ для запроса градиента, который я ищу. Похоже, что contentDocument отсутствует для элемента embedElement, так как мне это сделать в Dart?

Вот пример того, как это можно сделать в JavaScript: Доступ к содержимому SVG в JS

SVG встраивается следующим образом:

<embed class="emb" src="images/svglogo.svg" width="100" height="100" type="image/svg+xml" />

Карстен


person Karsten Becker    schedule 25.08.2013    source источник
comment
Можете ли вы вставить код JavaScript, который работает?   -  person Seth Ladd    schedule 26.08.2013
comment
Также вставьте HTML-код, содержащий простой SVG.   -  person Seth Ladd    schedule 26.08.2013
comment
Я обновил вопрос для уточнения того, что я хочу сделать.   -  person Karsten Becker    schedule 26.08.2013
comment
Похоже, вам следует открыть запрос функции на dartbug.com/new. Рад, что вы нашли обходной путь.   -  person Seth Ladd    schedule 26.08.2013
comment
Хмм хорошо. Открытая ошибка code.google.com/p/dart/issues/detail? идентификатор=12751   -  person Karsten Becker    schedule 26.08.2013


Ответы (1)


Я нашел обходной путь, который позволяет избежать проблемы. Вы можете просто загрузить файл SVG с помощью HttpRequest следующим образом:

HttpRequest.getString("../imgs/redLed.svg").then((r)=>svgLED=r);

затем вставьте строку как SvgElement в DOM следующим образом:

SvgElement svg=new SvgElement.svg(svgLED);
bla.nodes.add(svg);

Затем вы можете запросить SVG как обычный элемент HTML:

svg.query("#lowVal").attributes["stop-color"]=lowOn;
person Karsten Becker    schedule 26.08.2013