使用svg中的javascript-function操作svg外部的对象

时间:2010-06-10 20:05:57

标签: javascript ajax svg external

我在我的网站上嵌入了一个svg-graphic,我想用javascript命令操纵网站的其余部分,这些命令是的svg中 - 虽然我不确定是否这是可能的。

让我详细说明: 我在svg中有一个世界地图,我想点击一个国家,这个点击应该运行一个ajax调用,并将该国家的相关信息加载到嵌入svg的html网站的div中。

“onclick =”location.href ='xxx'“”重定向到相应的网站,这很好,但我更喜欢运行一个js函数,用ajax获取网站 - 但运行javascript函数svg似乎只适用于svg中定义的函数和元素,而不是在它之外。

基本上可以通过svg中的js-function来操纵svg之外的任何东西吗?怎么样?

此致 基督教

2 个答案:

答案 0 :(得分:4)

诀窍是SVG是“窗口”的孩子,不像大多数事情那样是“window.document”的孩子。如果SVG中有脚本,则使用

访问文档中的内容
this.parent.document.getElementById("theIDYouWant")

如果您的文档的<head><body>标记中有脚本,则可以使用

之类的约定访问SVG的内容
window.theIDofYourSVG.childNodes[theNumberOfTheThingInYourSVG]

答案 1 :(得分:2)

ad onclick =“replaceLink('yourdata')”到要启动此功能的svg对象,在svg中定义此函数:

function replaceLink(data)
    {
        parent.replaceLinkinHTML(data);
    };

并将一个replaceLinkinHTML函数添加到嵌入svg的html中,您可以轻松地从svg中操作html页面...