したがって、iframeを書き込むことができるまでsetIntervalを実行している次のコードがあります。jQueryで動的iframeを作成するより良い方法はありますか?
$('#testdiv').append($('<iframe id="testiframe"/>'));
var t = setInterval(function(){
if(document.getElementById('testiframe') !== 'undefined'){
clearInterval(t);
$('#testiframe').contents().find('body').append('asd');
}
}, 15);
基本的に、jQueryはiframe要素を作成し、DOMにロードします。しかし、iframeはすぐに利用できないので、直後に発生するようにコード化された追加のjQuery呼び出しがあります。このコードでは、新しいiframeが利用可能になるまで単純なインターバルチェックを行い、その内容に 'asd'を書き込みます。
私はiframeの作成にチェーンメソッドのさまざまな方法を試してみましたが、何も実際には機能しません。それはすべてタイミングの問題と思われます。私は$( '#testiframe')を試した。live( 'load'、function(){});それはまったく動作しません。
だから誰もこれについてよりクリーンな勧告を持っていますか?
関連:http://stackoverflow.com/questions/205087/jquery-ready-in-a-dynamically-inserted-iframe – artlung