在jQuery中创建动态iframe的更好方法?

Geu*_*uis 11 iframe jquery

所以我有以下代码执行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);
Run Code Online (Sandbox Code Playgroud)

基本上发生的是jQuery创建iframe元素并将其加载到DOM中.但是,iframe不能立即使用,因此编码的其他jQuery调用会在字后面发生.使用这段代码,它会进行简单的间隔检查,直到新的iframe可用,然后将'asd'写入其内容.

我花了大约一个小时尝试将方法链接到iframe创建的不同方法,但没有什么真正起作用.这似乎只是时间问题.我试过$('#testiframe').live('load',function(){}); 而这根本不起作用.

那么有人对此有更清晰的建议吗?

Mif*_*Fox 26

也许只是一个常规赛事没有live

$('<iframe id="testiframe"/>').load(function(){
    $('#testiframe').contents().find('body').append('asd');
}).appendTo("#testdiv");
Run Code Online (Sandbox Code Playgroud)

  • 你不需要id.为什么不只是$(this).contents().find('body').append('asd'); 甚至$(this.contentDocument.body).append('asd') (4认同)