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