JS:调用给定脚本对象的特定函数

时间:2015-10-16 19:39:19

标签: javascript dom call highslide

这可能吗?

Item# | Bill# | Profit
1       1      100
2       1      200
1       2      100
2       2      200

问题

我使用highslide和几个html-Windows(htmlExpand)。每个人都有一个带init()函数的脚本。 如果打开一个Window,则应调用它包含的init函数。

因为,现在有几个init函数,我无法直接调用它,因为它在大多数情况下调用了错误的函数。

myscripts = document.getElementsByTagName("script");
myscripts[0].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();
   }
}

那么,我如何调用给定脚本对象的函数

1 个答案:

答案 0 :(得分:0)

这是不可能的,因为代码块中document.getElementsByTagName("script")[0]返回的HTMLScriptElement没有init()方法。实际上,它没有任何方法,也没有从其父级继承HTMLElementElementNode,或者EventTarget

我认为您试图在特定脚本中添加任何JS对象时公开init()方法。但是,你不会那样做。为此,您可能希望查看类似:https://css-tricks.com/how-do-you-structure-javascript-the-module-pattern-edition/

的内容