如何在Dart中访问embed元素的contentDocument?

时间:2013-08-25 22:21:49

标签: dart dart-html

我使用embed元素在HTML文件中加载SVG。但是现在我想在这个SVG中改变渐变的颜色。在JavaScript中有contentDocument,我可以访问它来查询我正在寻找的渐变。 似乎embedElement中没有contentDocument,那么我该如何在Dart中做到这一点?

以下是一个如何在JavaScript中完成的示例:Accessing SVG content in JS

SVG嵌入如下:

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

卡斯滕

1 个答案:

答案 0 :(得分:2)

我找到了解决问题的解决办法。您只需使用HttpRequest加载SVG文件,如下所示:

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

然后将String作为SvgElement插入DOM,如下所示:

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

然后,您可以像普通的HTML元素一样查询SVG:

svg.query("#lowVal").attributes["stop-color"]=lowOn;