gpt4 book ai didi

javascript - 访问 svg 的脚本

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:15 24 4
gpt4 key购买 nike

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 的对象或元素。如果有什么解决办法就好了。

最佳答案

我认为线索可能在“在另一个站点上”。关于何时允许来自不同站点的 JavaScript 程序相互通信有严格的规定。嵌入式 SVG 的处理方式与 iframe 中的文档的处理方式相同。

关于javascript - 访问 svg 的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/247596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com