【问题标题】:Calling globally defined JavaScript function from external SVG从外部 SVG 调用全局定义的 JavaScript 函数
【发布时间】: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!"); }。并且脚本加载代码放在&lt;object data="img/map.svg" ...之后。
  • @RoryMcCrossan 当我在 Chrome 中从控制台运行 myJSFunction() 时,它可以工作!
  • @RobertLongson 谢谢你,window.parent.myJSFunction(); 工作!

标签: javascript jquery html svg


【解决方案1】:

您可以通过 window.parent 访问父 javascript 函数,即 window.parent.myJSFunction()

【讨论】:

猜你喜欢
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 2015-03-02
相关资源
最近更新 更多