我有一个看起来像这样的 HTML 文件:
<html>
<div id="test"> ... </div>
<object data="pic.svg" [...]></object>
</html>
在 pic.svg 中,我有一个元素,比如说一个圆圈,我想实现类似的东西:
<circle onClick="doSomething()" [...]>
现在,在 js 函数 doSomething() 中(即当有人点击圆圈时)我想更改我的“测试”-div。这个怎么做?
我有一个看起来像这样的 HTML 文件:
<html>
<div id="test"> ... </div>
<object data="pic.svg" [...]></object>
</html>
在 pic.svg 中,我有一个元素,比如说一个圆圈,我想实现类似的东西:
<circle onClick="doSomething()" [...]>
现在,在 js 函数 doSomething() 中(即当有人点击圆圈时)我想更改我的“测试”-div。这个怎么做?
如果您希望 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>
您可以从 svg 内部访问父文档(以及那里的元素),如下所示:
var divInParentDocument = window.parent.document.getElementById('test');
这是一个(稍微复杂一点)示例,展示了如何从 svg 内部调用父 html 文档中的函数。