1

我有一个看起来像这样的 HTML 文件:

<html>
 <div id="test"> ... </div>
 <object data="pic.svg" [...]></object>
</html>

在 pic.svg 中,我有一个元素,比如说一个圆圈,我想实现类似的东西:

<circle onClick="doSomething()" [...]>

现在,在 js 函数 doSomething() 中(即当有人点击圆圈时)我想更改我的“测试”-div。这个怎么做?

4

2 回答 2

0

如果您希望 SVG 与 HTML 存在于相同的 DOM 中,最好使用嵌入式<svg>元素。它得到了很好的支持

就像是

<svg id="svgroot" width="600" height="600"
     version="1.1" xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript">//<![CDATA[
   function doSomething() {
       document.getElementById('test').appendChild(...);
   }
//]]></script>

<circle onClick="doSomething()" />
</svg>
于 2013-01-11T08:32:08.243 回答
0

您可以从 svg 内部访问父文档(以及那里的元素),如下所示:

var divInParentDocument = window.parent.document.getElementById('test');

这是一个(稍微复杂一点)示例,展示了如何从 svg 内部调用父 html 文档中的函数。

于 2013-01-11T09:45:37.353 回答