Jquery,尝试将div从colorbox更新为parent

时间:2011-07-07 20:11:20

标签: jquery colorbox

再次使用颜色框与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; }});

但无论我尝试什么,警报框都是空白的。有什么建议吗?

1 个答案:

答案 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以某种方式重新定义或指向其他地方。不过,上述策略也可能对此有所帮助。