我的主页上有一个如下所示的 JavaScript:它只是定义了一个变量
test1 = function(){
var bla= "bla";
}
在我的 iFrame 中,我有另一个 javascript,它只产生如下所示的警报
alert(parent.test1.bl);
不幸的是,出现了警告窗口,但内容显示“未定义”。如何从父窗口的函数中读取变量?
有趣的是,如果我在父窗口执行警报并仅调用 iFrame 中的函数,则会弹出警报框并包含消息。但似乎无法从父级读取变量。
最佳答案
函数没有属性,对象有。因此,在尝试使用其属性之前,您必须先实例化 test1()
。
test1 = function(){
var bla= "bla";
this.bl ="notbla";
}
alert(new test1().bl);
请注意此处关键字 this
的使用,它引用新创建的对象,并使 bl
成为一个可以在函数外部读取的属性。使用 var
声明的 bla
在 test1()
之外无法看到,除非您不会创建另一个像 this 的属性。 bl = bla;
你的问题的“有趣的部分”确实不清楚,无论在哪里调用,你的alert()
肯定会显示未定义
。
关于javascript - 从 iframe 访问父函数中的变量 (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994767/