2012-03-22 20 views
0

ファイルのトラフiframeをアップロードしようとしています。iframeでフォームを送信した後でiframeコンテンツを読む

私はこの方法ではiframeを作成します。私はDOMにIFRAMEを追加し、この後

<iframe frameBorder="0" height="50px" width="100%" id="iframe-upload"/> 

$('#iframe-upload').contents().find('body').append('<form method="post" action="admin/images/upload" enctype="multipart/form-data" id="form-upload-image"><input name="data[image]" type="file" id="image-upload" /><input type="button" id="btn"></form>').appendTo("#formupload"); 

を提出する私は、このように振る舞う:

$("#iframe-upload").contents().find('#btn').bind('click', function(){ 
    $("#iframe-upload").contents().find('#form-upload-image').submit() 

}) 

今、電話しなければならないときは分かりません:

console.log($("#iframe-upload").contents()); 

コンテンツを取得する。

問題は、私のcontents()リクエストとiframeのリフレッシュとの間の同期です。実際にはjqueryが先に進み、iframeがリフレッシュされた後に問題が発生します。このように私は本当の反応に到達することができません。

p.s. 私はlive()、on()、frame()を変更しようとしましたが、これらのイベントはすべて1回だけ起動しますので、無用です。あなたのアドバイス

答えて

0

フォームを送信する前に、iframeから内容を取得することができます。これを実現するには、関数をフォームのonSubmitイベントにバインドします。

$('#form-upload-image').bind('submit', function (event) { 
    event.preventDefault(); 

    console.log($("#iframe-upload").contents()); 

    this.submit(); 
}); 

または多分

$('#form-upload-image').submit(function() { 
    console.log($("#iframe-upload").contents()); 
}); 

これはちょうど私の頭の上からです。

+0

iframeでリロードした後にコンテンツを取得する必要があります。 – misfotto

0

iframeが読み込まれた後に内容を確認してください。

$('#iframe').load(function() { 
    $(this).contents(); 
}); 
関連する問題