如何从iframe调用父文档中的嵌套函数

时间:2010-11-25 13:07:50

标签: javascript

在父母:

function outer(){
    function inner(){
        alert("hello");
    }
}
iframe中的

parent.outer.inner();

不起作用。

编辑:所以他们是私人的。没问题。这样做的原因是尽可能地尝试从全局范围隐藏这些功能。我认为将它们放在一个具有非常独特名称的单个函数名称后面是最好的方法。

基本上我需要

父:

function outer(action){

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

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

IFRAME:     parent.outer( “内”);

有更优雅的方式吗?

4 个答案:

答案 0 :(得分:2)

嵌套函数是私有的,你最多只能为外部函数之外的内部函数指定参数。

可在此处找到解释 https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope 在“嵌套函数和闭包”下

答案 1 :(得分:0)

这似乎很好地回答了我的编辑 How to turn a String into a javascript function call?

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

答案 3 :(得分:-1)

一种方法是使用对象

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

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