我正在使用一个名为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
这些仍然可用吗?
答案 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');
}
});