2011-09-10 9 views
2

ファイルをアップロードするスクリプトがiframeと連携しているので、ページをリロードする必要はありません。live()を使用してiframeのコンテンツを取得する

私はこのようにそれは、jQueryの .live()イベントを使用してロードされるときのiframeからデータ を取得に関する問題に遭遇しました

$("iframe").live("load", function() { 
    console.log($(this).contents().find("body").html()); 
}); 

このイベントでも火災(私はFirebugの中で何を得ません。 )、どうすれば私のファイルアップロードスクリプトからいくつかのコンテンツがロードされた後、iframeのHTMLを取得することができますか?私はこれをやりたいので、PHPスクリプトの戻り状態をサーバー上で実行できるようにします。

これらの要素は動的に追加されるため、.live()を使用する必要があります。つまり、従来の​​は機能しません。 jQueryのドキュメントから

答えて

6

注.live()および.delegate()メソッドは、IFRAMEの負荷イベントを検出するために使用することができません。ロードイベントは親ドキュメントを正しく破棄せず、イベントデリゲーションを行うために必要なFirefox、IE9またはChromeによってevent.targetが設定されていません。

http://api.jquery.com/load-event/

あなたが何をしようとしてに少しより多くの情報を提供することができ、iFrameの負荷を使用してイベントをキャッチなくすることができるはずです。

+0

それに気づかなかったので、自分自身が恥ずかしいです。ありがとうございました。私がしたいのは、iframeで実行されたファイルアップロードスクリプトが終了したときに検出して、iframeに_into_を吐き出したデータで何かできること、 "エラー"のようなもの - >エラーメッセージ " - >成功メッセージを出力します。 – Bojangles

+0

iFrame内のページは、それ自身または別のページにポストバックしますか?私は、iFrameのURLが変更されているかどうかは、おそらくこれの変更を監視することができるかどうかですね。あなたが行っていることをよりよく理解するためのテストURLがありますか?あるいは、もう少しHTMLを投稿できますか? – timothyclifford

+0

さて、iframeはURLパラメータなしで始まり、jQueryによって与えられます。私は 'setInterval()'を使って変更を検出することができましたが、できるだけネイティブイベントを使用したいと思います。 – Bojangles

関連する問題