JS:调用给定脚本对象的特定函数
JS: Call a specific function of a given script-object
这可能吗?
myscripts = document.getElementsByTagName("script");
myscripts[0].init();
问题
我使用 highslide 和几个 html-Windows (htmlExpand)。每个都有一个带有 init() 函数的脚本。
如果一个Window被打开,它包含的初始化函数应该被调用。
因为,现在有几个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();
那么,我如何调用给定脚本对象的函数
不,这是不可能的,因为HTMLScriptElement
, returned by document.getElementsByTagName("script")[0]
in your code block, does not have an init()
method. Indeed it doesn't have any methods, nor does it inherit init()
from its parents up the chain HTMLElement
, Element
, Node
, or EventTarget
。
我认为您正试图在特定脚本中添加的任何 JS 对象上公开 init()
方法。但是,你不会那样做。为此,您可能需要查看以下内容:https://css-tricks.com/how-do-you-structure-javascript-the-module-pattern-edition/
这可能吗?
myscripts = document.getElementsByTagName("script");
myscripts[0].init();
问题
我使用 highslide 和几个 html-Windows (htmlExpand)。每个都有一个带有 init() 函数的脚本。 如果一个Window被打开,它包含的初始化函数应该被调用。
因为,现在有几个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();
那么,我如何调用给定脚本对象的函数
不,这是不可能的,因为HTMLScriptElement
, returned by document.getElementsByTagName("script")[0]
in your code block, does not have an init()
method. Indeed it doesn't have any methods, nor does it inherit init()
from its parents up the chain HTMLElement
, Element
, Node
, or EventTarget
。
我认为您正试图在特定脚本中添加的任何 JS 对象上公开 init()
方法。但是,你不会那样做。为此,您可能需要查看以下内容:https://css-tricks.com/how-do-you-structure-javascript-the-module-pattern-edition/