从iframe访问父函数中的变量(Javascript)

时间:2012-12-21 17:43:17

标签: javascript function variables iframe parent

我的主页上有如下的javascript:它只是定义了一个变量

test1 = function(){
var bla= "bla";
}

在我的iFrame中,我有另一个javascript,它只会产生类似下面的警告

alert(parent.test1.bl);

不幸的是,会出现警告窗口,但内容显示为“未定义”。如何从父窗口的函数中读取变量?

有趣的是,如果我在父窗口执行警报并仅从iFrame中调用该函数,则会弹出警告框并包含消息。但似乎无法从父级读取变量。

1 个答案:

答案 0 :(得分:3)

函数没有属性,对象有。因此,在尝试使用其属性之前,您需要实例化test1()

test1 = function(){
    var bla= "bla";
    this.bl ="notbla";
}

alert(new test1().bl);

注意这里使用关键字this,它引用新创建的对象,并使bl成为可以在函数外部读取的属性。 bla以外var声明的test1()this.bl = bla;之外无法看到,除非您不会创建其他属性,例如alert()

您问题的“有趣部分”确实不清楚,无论调用的位置如何,您的undefined都会显示{{1}}。

MDN的{p> FunctionsObjects