在jQuery中删除iframe中的html包装器

时间:2016-06-02 11:11:43

标签: javascript jquery html iframe

我不知道如何删除iframe中的html包装器。

示例:

var content = '<html><body>A page</body></html>';
$('iframe').contents().find('html').html(content);

即使它在开发人员工具中看起来不像,上面现在有2个html标签。

var html = $('iframe').contents().find('html html').height();

使用上面的时候我得到了一个高度。当只在选择器中使用一个html时,我得到0.它证明有2个html标签。

如何摆脱iframe中的html包装?

在我的情况下,我不会修改content变量。它来自其他地方。

更新

我试过了:

$('iframe').find('html').replaceWith(content);

但它给了我:

  

无法执行&#39; replaceChild&#39; on&#39;节点&#39;:类型&#39; #text&#39;的节点可能无法插入&#39; #document&#39;。

类型的节点内

1 个答案:

答案 0 :(得分:2)

根据我的经验,您应该使用document.write

var content = '<html><body>A page</body></html>';
var iframeDoc = $('iframe')[0].contentDocument; // jQuery is just for the example of course
iframeDoc.write(content);

请参阅-DEMO-

如果您想覆盖以前使用的代码段之前设置的内容,则需要在致电iframeDoc.open();之前致电iframeDoc.write(content);。它并没有真正有意义,但却是......