加载iframe然后返回页面后,javascript中的变量是否可用?

时间:2009-08-12 05:11:46

标签: javascript jquery ajax

我正在使用一个名为colorbox的jquery插件,这可能是无关紧要的,因为我的彩盒只是在屏幕上打开一个iframe。

我觉得更基本的是,我的父窗口上有3个变量,它们是用jquery从AJAX调用返回的:

data.response 
data.comment 
data.userid 

在我的脚本中设置了较低的值后,我调用我的colorbox / iframe,在iframe框中打开一个新页面。然后,我运行一些代码,验证码和其他一些东西,然后我关闭了iframe框。

现在我可以使用parent.variable轻松地从iframe发送数据,但不能反过来。

所以我的问题是,关闭iframe并返回到我的父窗口后,是3个变量     data.response     data.comment     data.userid

这些仍然可用吗?

1 个答案:

答案 0 :(得分:2)

是的,它们可用,直到您刷新页面或在JS中的某个位置取消它们。您必须只记住JavaScript中的范围。如果该值仅在函数中定义,则您将无法访问它,但如果它们与您尝试访问它们的范围相同,则不会有任何问题。

$(document).ready(function() {

    var ajaxData;
    $.getJSON('url', {foo: 'bar'}, function(data) {
        ajaxData = data;
    });

    ...

    // then somewhere later (i.e. after closing the iframe)
    // notice that this is still the same scope ajaxData is defined
    if (ajaxData !== undefined) {
        console.log(ajaxData);
    } else {
        alert('data undefined');
    }
});