所以我有以下代码正在执行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(){});那根本行不通。
那么,有人对此有更清洁的建议吗?
最佳答案
也许只是没有live
的常规事件?
$('<iframe id="testiframe"/>').load(function(){
$('#testiframe').contents().find('body').append('asd');
}).appendTo("#testdiv");
关于jquery - 在jQuery中创建动态iframe的更好方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1704955/