0

我使用 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" />

卡斯滕

4

1 回答 1

2

我找到了一种避免该问题的解决方法。您可以像这样使用 HttpRequest 简单地加载 SVG 文件:

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

然后将字符串作为 SvgElement 插入到 DOM 中,如下所示:

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

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

svg.query("#lowVal").attributes["stop-color"]=lowOn;
于 2013-08-26T06:31:37.363 回答