再次使用颜色框与iframe,我试图将信息从颜色框传回父窗口。我试图做的就是在关闭颜色框后用彩色框传递的新文本更新div。我在colorbox弹出窗口中试过这个:
JQuery(window.parent.document).find("#textdiv").html("Some updated text");
parent.jQuery.fn.colorbox.close();
或者
$(window.parent.document).find("#textdiv").html("Some updated text");
parent.jQuery.fn.colorbox.close();
或者
parent.JQuery("#textdiv").html("Some updated text");
parent.jQuery.fn.colorbox.close();
或者
parent.$("#textdiv").html("Some updated text");
parent.jQuery.fn.colorbox.close();
然后在父窗口中我有:
<div id="textdiv"></div>
jQuery(".purchasepop").colorbox({width:"80%", height:"80%", iframe:true,
onClosed:function(){ alert($("#textdiv").html());return false; }});
但无论我尝试什么,警报框都是空白的。有什么建议吗?
答案 0 :(得分:4)
我玩了一下这个并遇到了类似的困难。但是,我确定了一种解决方法。在父页面中调用方法非常容易。所以,在父母有:
function updateFunction(value) {
$("#textdiv").html(value);
$.colorbox.close(); // Or whatever - I don't know about colorbox
}
并在<iframe>
中致电
parent.updateFunction("Some updated text");
这对我很有用。我相信问题是jQuery对象的范围。你有两个(一个在父,一个在iframe),抓住它们很烦人。我知道这是一个很好的方法,但我现在不记得了。
更新:第二次尝试parent.$("#textdiv").html("Some Updated Text");
工作正常。所以,我的猜测是你的回调订单有问题,或parent
以某种方式重新定义或指向其他地方。不过,上述策略也可能对此有所帮助。