所以我有以下代码执行setInterval,直到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(){});而这根本不起作用。
那么有人对此有更清晰的建议吗?
答案 0 :(得分:26)
也许只是一个没有live
的常规活动?
$('<iframe id="testiframe"/>').load(function(){
$('#testiframe').contents().find('body').append('asd');
}).appendTo("#testdiv");