我使用embed元素将SVG加载到HTML文件中。但是现在我想在此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" />
卡斯滕
最佳答案
我找到了一种避免该问题的解决方法。您可以像这样简单地使用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;
关于dart - 如何访问Dart中的embed元素的contentDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18434324/