我不知道如何删除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;。
类型的节点内
答案 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);
。它并没有真正有意义,但却是......