簡體   English   中英

如何從iframe調用父文檔中的嵌套函數

[英]How do I call a nested function in a parent document from an 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(“內部”);

有沒有更優雅的方式做到這一點?

嵌套函數是私有的,最多只能為外部函數之外的內部函數指定參數。

可以在https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope下的“嵌套函數和閉包”下找到說明。

通過使用閉包:

   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();

這似乎很好地回答了我的編輯問題如何將字符串轉換為javascript函數調用?

一種方法是使用對象

function Outer(){
    this.inner = function(){
        alert("hello");
    }
}

var o = new Outer()
o.inner();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM