Javascript 从类外部访问MooTools类方法

Javascript 从类外部访问MooTools类方法,javascript,mootools,Javascript,Mootools,我在MooTools类中有一个方法,我想在使用AJAX(iFrame)上传文件后访问该方法。iFrame页面在加载时运行的Javascript应该调用类的方法,但我无法使用以下方法访问它: 类名:Main var类在:myMain中初始化 parent.window.myMain.myMethod parent.window.Main.myMethod 这可能吗?如果是这样的话,我该怎么做呢?这对我来说很有效(iframes也是如此) 在主窗口中 var T=new MyClass(); 在I

我在MooTools类中有一个方法,我想在使用AJAX(iFrame)上传文件后访问该方法。iFrame页面在加载时运行的Javascript应该调用类的方法,但我无法使用以下方法访问它: 类名:Main var类在:myMain中初始化

parent.window.myMain.myMethod parent.window.Main.myMethod

这可能吗?如果是这样的话,我该怎么做呢?

这对我来说很有效(iframes也是如此)

在主窗口中

var T=new MyClass();
在Iframe中(在T初始化之后加载!)


我刚想出来。在iFrame页面上,我需要使用:

window.parent.Main.prototype.myMethod()

可能不是访问它的正确方式,但它可以工作。

我更喜欢的语法:

var MyClass = new Class({

  /* list regular non-static methods her as usual */

});

MyClass.staticMethod = function()
{
   /* body of static function */
};
您拥有的优势是:

  • 您可以通过类内外的
    MyClass.staticMethod()
    调用静态方法
  • 不可能在静态方法中意外访问this指针,因为它不可用

要访问内部框架中的静态方法,请使用can
window.parent.MyClass.staticMethod()

我一直在获取“window.parent.myMain undefined”是否可以从staticMethod访问新类(…)中定义的常用方法?i、 e.:`MyClass.staticMethod=function(){this.privateMethod()}`不,这是不可能的,看我回答的第二点。静态方法只能访问其他静态方法。如果需要访问此
,请创建一个常规方法。
var MyClass = new Class({

  /* list regular non-static methods her as usual */

});

MyClass.staticMethod = function()
{
   /* body of static function */
};