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

标签 javascript jquery ajax

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

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

data.response 
data.comment 
data.userid 

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

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

所以我的问题是,在关闭 iframe 并返回到我的父窗口后,这 3 个变量是 数据.响应 数据.注释 数据.userid

这些还有货吗?

最佳答案

是的,在您刷新页面或在您的 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');
    }
});

关于javascript - 加载iframe然后返回页面后javascript中的变量是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1264308/

相关文章:

javascript - 剑道堆积条形图类别

javascript - 拖动多个选定元素

javascript - 在字体大小上执行 jQuery 动画时避免文本换行

java - Spring - 获取所有可解析的消息键

php - PHP Comet 聊天系统的可扩展性问题

javascript - 是否可以(无休止地)来回更改 innerHTML/textContent?

javascript - 在单台 Windows 机器上开发多个基于 Node.js 的应用程序

javascript - 我们可以使用 Jasmine 在测试中执行异步操作吗?

php - 获取用户IP以外的唯一值

php - 使用 PHP 的 AJAX 代理,这可能吗?