[英]JS: Call a specific function of a given script-object
这可能吗?
myscripts = document.getElementsByTagName("script");
myscripts[0].init();
问题
我将highslide与几个html-Windows(htmlExpand)一起使用。 每个人都有一个带有init()函数的脚本。 如果打开一个窗口,则应调用其包含的init函数。
因为,现在有几个初始化函数,我无法直接调用它,因为在大多数情况下,它会调用错误的函数。
hs.Expander.prototype.onAfterExpand = function (sender) {init()}
我必须调用给定脚本对象的函数
hs.Expander.prototype.onAfterExpand = function (sender) {
var content = this.content.getElementsByClassName("highslide-maincontent")[0];
var myscripts = content.getElementsByTagName("script");
for (var i = 0; i < myscripts.length; i ++){
if (typeof myscripts[i].init == "function"){
myscripts[i].init();
}
}
但是我该怎么办呢? 这不行。
myscripts[i].init();
因此,我如何调用给定脚本对象的函数
不可能,这是不可能的,因为在您的代码块中,由document.getElementsByTagName("script")[0]
返回的HTMLScriptElement
没有init()
方法。 实际上,它没有任何方法,也没有从其父级HTMLElement
, Element
, Node
或EventTarget
继承init()
。
我认为您正在尝试对在特定脚本中添加的所有JS对象公开init()
方法。 但是,您不会那样做。 为此,您可能需要研究以下内容: https : //css-tricks.com/how-do-you-structure-javascript-the-module-pattern-edition/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.