调整IFrame的内容大小或使用替代方法

时间:2014-06-22 20:08:22

标签: javascript iframe resize

我说要在iframe之类的内容中显示6个aspx页面,这样当我查看页面时,我可以看到包含网页的控件数组。

但是,如果我使用iframe,我就无法将内容调整为Iframe的大小,尽管YouTube会调整内容的大小,因此必须这样做。

那么,我将如何确保内容符合IFrame,或者有更好的方法来实现这一目标。 另外,如果点击了控件,我最终会转到该页面,但我不确定Iframe是否有点击事件。

那么,我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

如果iframe的内容与主页面在同一个网址上,那么您就不会遇到任何安全问题,您可以将JavaScript添加到内容页面,以将其内容的高度传递回主页面。与点击事件相同:您可以在父页面上调用一些JavaScript函数。

以下是main和iframe内容页面的示例。内容页面有一个按钮,您可以单击该按钮,根据内容的高度调整iframe大小。

main.htm中

<html>
<head>
<script type="text/javascript">
function resize1(h) {
    document.getElementById("iframe1").height = h + 50;
}
</script>
</head>
<body>
<div>Test</div>
<iframe id="iframe1" border="1" height="100" src="iframe.htm" width="200">
</body>

iframe.htm

<html>
<body>
<a href="#" onclick="parent.resize1(document.getElementById('content').clientHeight);">Resize iframe</a>
<div id="content" style="background:Red;height:500;width:50px;">
    Test content
</div>
</body>

您可以根据自己的需要进行调整。例如,只要通过调用iframe内容页面的onload事件中的函数加载iframe内容,就可以设置高度。

请注意,您要在主页面上调用的任何JavaScript函数都必须位于HEAD部分。