2011-07-07 14 views
2

もう一度iframeでcolorboxを使用すると、カラーボックスの情報を親ウィンドウに戻そうとしています。すべての私がやろうとしているのは、カラーボックスを閉じた後に、colorboxを介して渡された新しいテキストでdivを更新することです。私は、カラーボックスをポップアップでこれを試してみました:divをカラーボックスから親に更新しようとしています

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; }}); 

しかし、私が何を試みても、警告ボックスは空白です。助言がありますか?

答えて

4

私はこれと少し演奏し、同様の困難を抱えていました。しかし、私は回避策を特定しました。親ページのメソッドを呼び出すのはかなり簡単です。だから、親に持つ:

function updateFunction(value) { 
    $("#textdiv").html(value); 
    $.colorbox.close(); // Or whatever - I don't know about colorbox 
} 

とでは、これは私のためによく働い

parent.updateFunction("Some updated text"); 

を呼び出します。問題はjQueryオブジェクトの範囲だと私は信じています。あなたはそのうちの2つ(親に1つ、iframeに1つ)を持っており、それらをつかむことは迷惑になることがあります。私はそれを行う良い方法があることを知っているが、私は今思い出していない。

更新:2回目の試みでは、parent.$("#textdiv").html("Some Updated Text");は正常に機能しました。だから、私の推測では、あなたのコールバック注文に間違ったことがあるか、parentが何とか再定義されたり、どこかで指摘されたりしているということです。それでも、上記の戦略はそれを助けるかもしれません。

関連する問題