所以我有以下代码正在执行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/

10-09 14:08