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/