基于实际内容的动态`iframe`高度

时间:2018-05-09 12:54:49

标签: javascript html iframe

我正在尝试根据实际内容调整高度iframe。我知道你不能在跨域域做,但在这种情况下,它将是相同的域。我找到了iframe加载src时设置iframe高度的解决方案,但是让我们说<script> function resizeIframe(obj) { obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px'; } </script> 内容会发生变化,因此iframe会扩展高度。我已经创建了一个向您展示我的意思的傻瓜。

这是plnuker:https://plnkr.co/edit/A6Hvmcf2drXGhHi22AWV

在这种情况下,它只是我在iframe中打开的另一个文件,但让我们说它将是另一个页面。我找到了以下代码,它在第一个实例中工作得很好,但是如果iframe中的内容发生变化,高度将保持不变,但我希望它能够调整。

<iframe src="..." frameborder="0" scrolling="no" onload="resizeIframe(this)" />

然后在html中

var enumarable = dict.SelectMany(g => g.Value.Select(k => new { Key = g.Key, Value = k}
));
var result = enumarable.GroupBy(g => g.Value, (key, group) => group.Select(g => g.Key).ToList());
keyCombos = result.Distinct(AnonymousComparer.Create((List<string> mc) => string.Join(";", mc))).ToList();

所以这实际上不是解决方案,因为它只适用于onload。

1 个答案:

答案 0 :(得分:0)

您可以使用setInterval()定期检查contentWindow.document.body.scrollHeight。这样做会很糟糕。