【问题标题】:How to trigger an event from the SVG <switch>如何从 SVG <switch> 触发事件
【发布时间】:2014-10-14 13:31:13
【问题描述】:

我在使用 SVG 中的 switch 元素时遇到问题。 如果第一个选项(在这种情况下为 ForeignElement)无法构建,我想调用 Javascript 函数。我的 SVG:

<switch>
  <foreignObject .../>      
  <text font-size="10" font-family="Verdana">
    <tspan x="10" y="10"  onload="bailout()">Please use a w3c compliant browser.</tspan>
  </text>
</switch>

Firefox 按预期工作并处理foreignObject。 Chrome 和 Opera 可以很好地处理 foreignObject,但仍会触发 bailout()。我的问题不涉及foreignObject。它涉及交换机本身。标准说 switch 对包含的脚本标签没有影响,所以这也不是一个选项。

如果开关中的第一个选项失败,我如何触发事件? 有什么我可以触发的事件吗?

【问题讨论】:

    标签: javascript svg dom-events


    【解决方案1】:

    Firefox 不支持 onload,但外部 SVG 元素除外,因此您认为它可以正常工作是巧合。例如,如果您将文本元素放在首位,您会看到 Firefox 也不会运行 onload。

    您的主要问题是开关中的所有元素都已加载,它们需要被加载,因为它们仍然可以被 &lt;use&gt; 之类的东西引用。

    没有简单的方法可以做你想做的事;事件将不起作用。过去我在开关上运行 getBBox 来查看它有多大,然后用它来确定要渲染的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-24
      • 2015-11-18
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      相关资源
      最近更新 更多