我可以在子窗口中访问变量吗?

时间:2013-04-10 16:01:12

标签: javascript jquery

我正在尝试访问已打开的窗口中的变量。

这是父窗口,它打开一个新窗口,设置对子窗口的引用,然后在另一个onclick事件中,它尝试检索子窗口中定义的变量。

    var window1;

    //open a window
    $('#btnOpen').click(function () {
        window1 = window.open('openedwindow', 'window2');
    });

    //get child variable
    $('#btnGetChildVariable').click(function () {
        alert(window1.childVariable);
    });

这是子窗口中的代码

    var childVariable = 'My child';

这可能吗?是window1.childVariable正确的语法,目前它只返回undefined(没有不安全的javascript错误,我已经尝试过它来获取子窗口中的控件,我可以访问它)。 “权威指南”的Javascript页面358似乎表明这是可能的。

1 个答案:

答案 0 :(得分:0)

我出错的地方如下,我已经定义了

$(document).ready(function () {

函数和我的变量是在这些函数中定义的。这意味着

var childVariable 

没有在全局范围内定义,而是在函数的上下文中定义,因此在它之外无法访问(我认为是一个闭包)。

(它确实有效,但如果我有任何错误,请纠正我)