当前位置: 首页 > 面试题库 >

动态创建具有给定HTML的iframe

邢飞白
2023-03-14
问题内容

我正在尝试从JavaScript创建iframe并用任意HTML填充它,如下所示:

var html = '<body>Foo</body>';
var iframe = document.createElement('iframe');
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);

我希望iframe然后包含一个有效的窗口和文档。但是,事实并非如此:

console.log(iframe.contentWindow); 空值

我在俯视什么?


问题答案:

设置javascript中src新创建的时iframe,除非将该元素插入文档中,否则不会触发HTML解析器。然后更新HTML,将调用HTML解析器并按预期处理属性。

var iframe = document.createElement('iframe');
var html = '<body>Foo</body>';
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);
document.body.appendChild(iframe);
console.log('iframe.contentWindow =', iframe.contentWindow);

同样,此问题也回答了您的问题,请务必注意,该方法与某些浏览器存在兼容性问题,请参阅@mschr的跨浏览器解决方案。



 类似资料:
  • 问题内容: 有没有一种 有效的 方法来用Java创建具有给定大小的文件? 在C语言中,可以使用ftruncate来完成。 大多数人只会将 n个 虚拟字节写入文件,但是必须有一种更快的方法。我在考虑ftruncate以及稀疏文件 … 问题答案: 创建一个新的RandomAccessFile并调用setLength方法,指定所需的文件长度。底层JRE实现应使用您环境中可用的最有效方法。 以下程序 在L

  • 例如:对于一个测试输入,它们必须是3个对象才能创建名称为v0、v1、v2,而对于其他测试输入,它们必须是5个对象才能创建名称为v0、v1、v2、v3、V4。 下面给出了5个对象的静态程序: 我想让它变得动态,比如k=5(对象的数量):

  • 问题内容: 我有一个带有多个选项卡的选项卡页,一旦单击该选项卡,就会调用服务以返回一些数据。其中一些数据返回html表单,并且非常随机。我想收集输入的值,并通过服务将数据发送回服务器。我的问题是无法从正在动态创建的html中的输入元素中获取数据。 我创建了一个Plunker来显示问题所在。请注意,html值可以随时更改,因此对html进行硬编码将无法使用。在这里,代码来自plunker,但是请查看

  • 我正在练习一些动态规划问题,并试图解决用给定的和打印所有子集的问题。例如:对于和,我应该得到以下结果: 我在不使用表的情况下得到了所需的结果,我使用表来防止重复调用相同的表和求和。但是,当使用表时,我在输出中没有得到。 请帮忙!

  • 问题内容: 我需要在网页上显示一个大表,并且需要防止第一列和第一行滚动。 我想动态设置此表的垂直大小(在某些静态大小的页眉/页脚页面内容之间),以使其尽可能高,而不必强制浏览器窗口具有垂直滚动条。 这仅需要在使用所有/任何版本的现代浏览器中工作:html,css,javascript,jquery 重要顺序: 具有许多表单字段,隐藏值,行的javascript折叠等的复杂表,稍后将添加 第一行将有

  • 我想知道列表中是否有一个等效语句来执行以下操作。在MATLAB中,我将执行以下操作 简而言之,我有一个初始值,一个最终值和一个增量。我需要创建一个数组(我读到它相当于python中的列表)并打印到文件中。