svg 是基于 xml 的图形,您可以向其中添加 JavaScript。我试图访问 svg 中定义的脚本函数。我的 svg 中的脚本是这样的:
<svg ... onload="RunScript(evt);"...>
<script type="text/javascript">
...
function RunScript(loadEvent) {
// Get object in my html by id
var objElement = top.document.getElementById('objid1');
if (objElement)
{
// Extend object tag object's methods
objElement.SVGsetDimension = setDimension;
...
}
function setDimention(w, h) {...}
在我的主 html 文件中,svg 嵌入在一个对象标签中,如下所示:
<object id="objid1" data="mygrahic.svg" ... >
<a href="#" onclick="document.getElementById('objid1').SVGsetDimention(10, 10);
return false;"
...>Set new dimention</a>...
这个工作正常。但是,如果 svg xml 文件被完整的 URL(在另一个站点上)引用,如下所示:
<object id="objid1" data="http://www.artlibrary.net/myaccount/mygrahic.svg" ... >
这些代码不再起作用。看起来我无法将我的 svg 脚本中定义的方法附加到我的主 html 对象标记元素中的方法,或者在这种情况下顶部或文档不可用,或者 getElementById(..) 只是找不到我的对象元素我的 svg 脚本。有什么办法可以在 svg xml 脚本中找到我的 html 元素?
不确定这个问题是否是由不同的 DOM 引起的,并且我的 svg 脚本代码无法找出另一个 DOM 的对象或元素。如果有任何解决方案会很好。