调用SVG';主html脚本中的外部JavaScript函数?

调用SVG';主html脚本中的外部JavaScript函数?,javascript,svg,Javascript,Svg,这是一个类似的问题,但我想知道当SVG的JavaScript函数未嵌入但从外部文件导入时,如何访问这些函数: 所以,我将试图把我的问题弄清楚,希望不要太复杂 我有main.html和main.js 我还有someSVG.svg,它导入了someSVG.js,它有一个函数foo() main.html将someSVG.svg作为对象元素导入 如何从main.js调用foo()?如果您在SVG中嵌入了标记,您可以使用 var inner = document.querySelector('obje

这是一个类似的问题,但我想知道当SVG的JavaScript函数未嵌入但从外部文件导入时,如何访问这些函数:

所以,我将试图把我的问题弄清楚,希望不要太复杂

我有main.html和main.js

我还有someSVG.svg,它导入了someSVG.js,它有一个函数foo()

main.html将someSVG.svg作为对象元素导入


如何从main.js调用foo()?

如果您在SVG中嵌入了
标记,您可以使用

var inner = document.querySelector('object').contentWindow
与外部窗口的窗口对象一样,它提供了在普通窗口中可以找到的所有全局变量,例如定义的脚本
internal.foo()
internal.document


注意:Safari支持版本10中的HTMLObjectElement.contentDocument,但不支持.documentWindow。

为someSVG.js创建对象,如var some=new someSVG()和call some.foo()。SVG也必须是同一来源或CORS可访问的。@Bluecrayon想要评论,但由于缺少声誉而无法评论。他留下了一个编辑。全文如下:Safari不支持svg元素的HTMLObjectElement.contentWindow。在Safari 11及更早版本中测试,适用于Mac和iOS。HTMLObjectElement.contentWindow根本不包括在中。