如何在iframe中显示角度动态内容?

时间:2015-05-15 01:22:02

标签: javascript angularjs iframe

我使用AngularJS中的ng-repeat生成一些表格内容,我希望将此内容显示在iframe中,以便用户可以拖动它并调整其大小。

我无法使用iframe src属性,因为这需要一个网址,而我正在客户端上生成内容。

我可能想要一些srcdoc的变体,但这似乎需要一行引用的html代码。

如何构建我的iframe,使ng-repeat生成的内容显示在?

1 个答案:

答案 0 :(得分:1)

您可以将AngularJS表添加到iframe。支持仅限于HTML5,但它看起来像这样:

HTML

<iframe id="frame" sandbox="allow-same-origin allow-scripts" srcdoc="" seamless="true"></iframe>

的Javascript

document.getElementById("frame").contentWindow.document.getElementById("mydiv")

可以使用srcdoc属性代替src来表示您将为内容提供代码。使用srcdoc时,预计也会无缝;它告诉浏览器iframe的内容应该被视为网站的一部分,而不是嵌套的内容。不幸的是,这将触发样式更改,从而消除了您首先想要iframe的整个原因(调整大小句柄消失)。此外,您必须将css文件和javascript文件注入iframe - 它不值得。

我建议使用jQuery UI resizable:https://jqueryui.com/resizable/

这是我用来测试控制iframe内容的小提琴。它非常基本,但准确地证明了它们实际上有多少麻烦:Fiddle