如何从svg <switch> </switch>触发事件

时间:2014-10-14 13:31:14

标签: javascript svg javascript-events

我在使用SVG中的switch元素时遇到了问题。 我想调用javascript函数,以防第一个选项(在这种情况下为ForeignElement)无法构建。我的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。它涉及到交换机本身。标准表示切换对包含的脚本标记没有影响,因此这也不是一个选项。 如果交换机中的第一个选项失败,我怎么能触发事件? 我可以触发一些事件吗?

1 个答案:

答案 0 :(得分:0)

除了外部SVG元素之外,Firefox不支持onload,因此您认为它的工作非常巧合。例如,如果你把文本元素放在第一位,你就会发现Firefox不会运行onload。

您的主要问题是交换机中的所有元素都已加载,它们需要仍然可以被<use>等引用。

没有简单的方法可以做你想做的事情;事件不会奏效。在过去,我在交换机上运行getBBox,看它有多大,然后用它来确定渲染的是什么。