第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またはラップ関数に渡すパラメータでこれを行う必要があります。私は、アニメーションを実行したり、サウンドを再生する一連の関数でこれを行います(時間がかかり、順番に実行する必要があります)。これは私が理想的に見えるようなものです。
実際にロードされた後、あなたのコードが実行される可能性があり、この方法では、 reday-functionはiframeでは機能しませんが、load-functionにもコールバック関数がありますので、全体的なapporoachが機能します! – Himmators
複数のiframeが読み込まれるまで待つのはどうですか? – jbyrd
準備完了機能はiframeで機能しません。 DOMが完全にロードされた後にコールバックを実行するだけです。つまり、JQueryは.ready(ハンドラ)関数を呼び出す代わりに$(ハンドラ)構文を使用することを勧めます。 https://api.jquery.com/ready/ – MorgoZ