2009-07-24 99 views
4

我有一個方法在MooTools類中,我想在使用AJAX(iFrame)上傳文件後訪問它。 JavaScript時的iFrame的頁面運行時,它的負載應該調用類的方法,但我無法用其它東西一樣來訪問它: 類名稱:主要 VAR類在初始化:myMain從類之外訪問MooTools類方法

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

這甚至有可能嗎?如果這是我該怎麼做?

回答

10

的語法,我更喜歡:

var MyClass = new Class({ 

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

}); 

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

的優點你已經是:

  • 您可以通過MyClass.staticMethod()內調用靜態方法和類
  • 之外這是不可能的由於無法訪問靜態方法中的此指針,因爲它不可用

要訪問內部框架中的靜態方法使用可以window.parent.MyClass.staticMethod();

+0

是否有可能從staticMethod訪問新類(...)中定義的常用方法?即: `MyClass.staticMethod = function(){this.privateMethod()}; ` – 2011-07-27 13:18:39

0

這適用於我(iframes)。

在主窗口中。

var T=new MyClass(); 

iframe中(其中T被初始化後加載!)

window.parent.T.anyMethodOfMyClass() 
+0

我只是不斷收到「window.parent.myMain undefined」 – trobrock 2009-07-24 15:57:43

0

就想通了。在iFrame頁面上,我需要使用:

window.parent.Main.prototype.myMethod();

可能不是正確的方式來訪問它,但它的工作原理。