将内容附加到动态创建的iframe中会获得一个空的iframe

cnh*_*ald 3 ajax iframe jquery append

我有一个jQuery片段如下:

$.ajax({
  ....
  success: function(myContent) {
    .....
    $('<iframe id="myFrame" name="myFrame">').appendTo('body').ready(function(){
      $('#myFrame').contents().find('body').append(myContent);
    });
    .....
  });
}); 
Run Code Online (Sandbox Code Playgroud)

当第一次触发事件时,仅显示空的iframe,但如果第二次触发事件,则内容将成功附加到iframe中.此代码段中有任何明显错误吗?

kir*_*irb 12

我相信一些浏览器需要短暂的延迟来识别新iframe的DOM.使用超时应该工作:

$('<iframe id="myFrame" name="myFrame">').appendTo("body").ready(function(){
    setTimeout(function(){
        $('#myFrame').contents().find('body').append(myContent);
    },50);
});
Run Code Online (Sandbox Code Playgroud)