6

我正在尝试将 onClick 处理程序添加到嵌入式对象。处理程序需要执行一个位于外部 .js 文件中的函数,该文件通过 .js 链接到当前 html 文件<script src="...

由于该函数位于其他位置,我是否需要以不同方式引用该函数?

这是当前的代码(不起作用,但也不会产生任何错误):

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onClick="buttonEvent('buttonClicked')"/>
4

4 回答 4

9

您必须在svg中实现 onclick并使用 svg 中的 javascript 将其链接到外部 JavaScript 函数。有关示例,请参见 SVG wiki。

更新:显然 SVG wiki 已不复存在。毫不奇怪,我现在(很快)能找到的最好的参考资料都在 StackOverflow 上。

这个答案描述了如何在 svg 中实现 onclick

于 2010-07-01T09:08:38.623 回答
2

使用任何一种 javascript 绑定(Mario Menger已经回答了这个问题)。

如果您不能或不会使用绑定,您可以使用xil3通过修改后回答的内容:

使用空锚标记<a href="javascript:someFunc()"></a>作为点击消费者。设置它的 z-index 和位置/大小,使其位于 svg 对象上(用于跨浏览器兼容性)。

于 2010-07-01T09:18:41.517 回答
1

如果您想从嵌入对象调用方法,您可以执行以下操作,将以下内容作为您的 embedsrc.html:

    <img src="svg/button.svg" width="95" height="53" 
    onClick="window.parent.buttonEvent('buttonClicked')"/>

然后在你的主 html 中有这个:

    <embed src="embedsrc.html" width="95" height="53"> </embed>

    <script type='text/javascript'>
    function buttonEvent(input){alert(input);}
    </script>
于 2020-03-31T02:20:05.913 回答
0

Onclick 应该都是小写的。

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onclick="alert('hello!');"/>
于 2010-07-01T09:20:18.653 回答