【发布时间】:2019-12-10 18:14:38
【问题描述】:
我有一个带有外部 JavaScript 模块的 HTML 页面
<script type="text/javascript" src="js/js.js"></script>
和一个外部 SVG 地图“img/map.svg”。
我需要在地图上创建可点击的对象,这将依次调用“js/js.js”中定义的一些全局 JavaScript 函数myJSFunction。此函数将修改 HTML 页面的标题和内容,隐藏 SVG 地图并显示包含一些数据的表格。我怎样才能做到这一点?在 svg 代码中设置 onclick 事件的天真尝试如下:
<g
id="g170"
onclick="myJSFunction()">
导致错误:
未捕获的 ReferenceError: myJSFunction 未定义 在 SVGGElement.onclick
【问题讨论】:
-
如果您看到该错误,则该函数根本没有全局定义。例如,它是否在 document.ready 处理程序中?使用所有相关代码查看该问题的工作示例会有所帮助
-
@RoryMcCrossan 我刚刚将其定义为
function myJSFunction() { alert("clicked!"); }。并且脚本加载代码放在<object data="img/map.svg" ...之后。 -
@RoryMcCrossan 当我在 Chrome 中从控制台运行
myJSFunction()时,它可以工作! -
@RobertLongson 谢谢你,
window.parent.myJSFunction();工作!
标签: javascript jquery html svg