我使用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" />
卡斯滕
答案 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;