2013-02-26 7 views
6

第1オフ:できる限り非同期で実行する必要があることを知っています。次の機能が起動する前にiframeが読み込まれるのを待ちますか?

私はラップと呼ばれる機能を、持っている:

、本質的にそれがインラインフレームとして現在のページをロードします。ページ上のリンクがクリックされてもjavascriptを実行し続けるために必要です。

function wrap(){ 
    event.preventDefault(); 
    var pathname = window.location.pathname; 
    $('body').html('<iframe id="wrapper" src="'+ pathname +'" >') 
    $('iframe').load(function(){ 
      //this is where the magic outght to happen 
    }); 
} 

ラップを実行すると、iframeの内容の操作を開始したいと考えています。アプリケーションの構造については、私はラップ関数のousideまたはラップ関数に渡すパラメータでこれを行う必要があります。私は、アニメーションを実行したり、サウンドを再生する一連の関数でこれを行います(時間がかかり、順番に実行する必要があります)。これは私が理想的に見えるようなものです。

答えて

7

jQueryは、ドキュメントと同じようにiframeでready関数を使用できます。ハイライト機能の中に入れて、iframeの読み込みが完了した後に実行します。

$("iframe").ready(function(){ 
    // do something once the iframe is loaded 
}); 
+3

実際にロードされた後、あなたのコードが実行される可能性があり、この方法では、 reday-functionはiframeでは機能しませんが、load-functionにもコールバック関数がありますので、全体的なapporoachが機能します! – Himmators

+0

複数のiframeが読み込まれるまで待つのはどうですか? – jbyrd

+0

準備完了機能はiframeで機能しません。 DOMが完全にロードされた後にコールバックを実行するだけです。つまり、JQueryは.ready(ハンドラ)関数を呼び出す代わりに$(ハンドラ)構文を使用することを勧めます。 https://api.jquery.com/ready/ – MorgoZ

-4

あなたが機能作成することができます。

function iframeready() { 
    // code after iframe is loaded 
} 

をとiframeロードイベント のコールバックとしてこの関数を渡すので、IFRAMEが

+1

彼の質問とは完全に無関係です。彼はちょうどあなたが言及iframeのロードイベントについて尋ねていた...私は彼が関数を宣言する方法を知っていると思います – ied3vil

関連する問題