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

时间:2012-03-02 08:57:48

标签: jquery ajax iframe append

我有一个jQuery片段如下:

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

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

3 个答案:

答案 0 :(得分:12)

我认为某些浏览器需要短暂的延迟才能识别新iframe的DOM。使用超时应该有效:

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

答案 1 :(得分:4)

我认为这就是你要找的东西:

$('<iframe id="myFrame" name="myFrame">').appendTo('body');
$('iframe').contents().find('body').html(myContent);       

演示:http://jsfiddle.net/vbNGA/1/

答案 2 :(得分:1)

这个简单的代码可能对你有用,对我来说效果很好。

$("#iframe_id").contents().find("body").append("Contents to display in iframe");