2010-11-25 55 views
2

在父:我如何調用父文檔中嵌套函數從一個iframe

function outer(){ 
    function inner(){ 
     alert("hello"); 
    } 
} 

在iframe中

parent.outer.inner(); 

不起作用。

編輯:所以他們是私人的。沒問題。這樣做的理由是儘可能地嘗試和隱藏全球範圍內的這些功能。我認爲把它們放在一個具有唯一名稱的單個函數名稱後面是最好的方法。

從本質上講,我需要

父:

function outer(action){ 

    if(action == "inner") 
     inner() 

    function inner(){ 
     alert("hello"); 
    } 
} 

的iframe: parent.outer( 「內部」);

有沒有更好的方法來做到這一點?

+1

如果你想內()函數是從外()函數外部調用,你必須做出對它的引用關閉。 – 2010-11-25 13:11:55

回答

2

嵌套函數是私有的,您最多隻能爲外部函數外部的內部函數指定參數。

解釋可以「嵌套函數和閉包」

0

通過使用關閉:

function outer(){ 
     function inner(){ 
     alert("I am Inner"); 
     } 
     return inner ; 
    } 
    var x = outer(); 
    x(); 

如果你想使用內部函數的變量不是我們可以這樣做:

function outer(){ 
     function inner(){ 
     var y=10; return y;  
     } 
     return inner ; 
} 
var x = outer(); 
x();