【问题标题】:How to access contentDocument of embed element in Dart?如何访问 Dart 中嵌入元素的 contentDocument?
【发布时间】:2013-08-25 22:21:49
【问题描述】:

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

卡斯滕

【问题讨论】:

  • 你能把有效的 JavaScript 代码粘贴进去吗?
  • 另外,请粘贴一些包含简单 SVG 的 HTML 代码。
  • 我更新了问题以澄清我想要做什么。
  • 听起来您应该在dartbug.com/new 上打开一个功能请求。很高兴您找到了解决方法。

标签: dart dart-html


【解决方案1】:

我找到了一种可以避免该问题的解决方法。您可以像这样使用 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2020-08-13
    • 2012-08-14
    • 2017-02-05
    • 2017-09-22
    • 2014-04-06
    • 2013-01-12
    相关资源
    最近更新 更多