jQuery添加带有内容的iFrame

我有这样的问题。 我需要在fancybox中打开iframe(我需要iframe,因为我需要浏览已打开文档中的链接并保留在fancybox中),但我想将内容放入iframe变量中,而不是通过src属性(我已经有了内容)通过AJAX(在将内容放到iframe之前我需要对内容进行一些检查,所以没有办法做它而不是AJAX查询),所以我不再需要一个查询)。

Fancybox不允许将’content’属性与’type’一起使用:’iframe’。 所以我决定动态创建iframe,将我的内容插入其中,并将fancybox的iframe显示为常规块。

就像是

jQuery('').appendTo('body').contents().find('body').append(content); 

然后

 jQuery('').fancybox(); 

但第一部分不起作用。 我可以看到添加到页面但没有任何内容的iframe(我在可变内容中有完整的html页面,但是当我尝试追加一些文本时它也不起作用)。

我做错了什么? 也许有另一种方法可以做我需要的东西?

感谢您的意见!

调用jquery的ready方法之后你的问题就解决了

   

如果将该行拆分为两行会发生什么:

 jQuery('').appendTo('body'); jQuery('#someId').contents().find('body').append(content); 

然后在创建新iframe之前将选择器更改为正确,而不是将其插入DOM和调用fancybox,但这应该可行:

 jQuery('#someId').fancybox(); 

已经过了这个问题的时间,但这是另一个解决方案:

 var ifrm = document.createElement("iframe"); document.body.appendChild(ifrm); ifrm.id = "someId"; // optional id ifrm.onload = function() { // optional onload behaviour } setTimeout(function() { $(ifrm).contents().find("body").html(content); }, 1);