我有一个jQuery片段,如下所示:
$.ajax({ .... success: function(myContent) { ..... $('<iframe id="myFrame" name="myFrame">').appendTo('body').ready(function(){ $('#myFrame').contents().find('body').append(myContent); }); ..... }); });
第一次触发该事件时,仅显示一个空的iframe,但是如果第二次触发该事件,则内容将成功添加到iframe中。此代码段中是否有任何明显的错误?
我相信某些浏览器需要短暂的延迟才能识别新iframe的DOM。使用超时应该可以:
$('<iframe id="myFrame" name="myFrame">').appendTo("body").ready(function(){ setTimeout(function(){ $('#myFrame').contents().find('body').append(myContent); },50); });