我在我的网站上嵌入了一个svg-graphic,我想用javascript命令操纵网站的其余部分,这些命令是在的svg中 - 虽然我不确定是否这是可能的。
让我详细说明: 我在svg中有一个世界地图,我想点击一个国家,这个点击应该运行一个ajax调用,并将该国家的相关信息加载到嵌入svg的html网站的div中。
“onclick =”location.href ='xxx'“”重定向到相应的网站,这很好,但我更喜欢运行一个js函数,用ajax获取网站 - 但运行javascript函数svg似乎只适用于svg中定义的函数和元素,而不是在它之外。
基本上可以通过svg中的js-function来操纵svg之外的任何东西吗?怎么样?
此致 基督教
答案 0 :(得分:4)
诀窍是SVG是“窗口”的孩子,不像大多数事情那样是“window.document”的孩子。如果SVG中有脚本,则使用
访问文档中的内容this.parent.document.getElementById("theIDYouWant")
如果您的文档的<head>
或<body>
标记中有脚本,则可以使用
window.theIDofYourSVG.childNodes[theNumberOfTheThingInYourSVG]
答案 1 :(得分:2)
ad onclick =“replaceLink('yourdata')”到要启动此功能的svg对象,在svg中定义此函数:
function replaceLink(data)
{
parent.replaceLinkinHTML(data);
};
并将一个replaceLinkinHTML函数添加到嵌入svg的html中,您可以轻松地从svg中操作html页面...