【发布时间】:2010-09-19 20:12:27
【问题描述】:
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 的对象或元素。如果有解决办法就好了。
【问题讨论】:
-
您针对和测试的浏览器是什么?如果这些浏览器没有内置 SVG 支持,您使用的是谁的 SVG 插件?
-
我现在使用的 Firefox。它确实很好地显示了 svg 图形。这只是脚本问题。我认为 pdc 的答案可能是原因。
标签: javascript html svg