我浏览了类似的帖子,但没有发现任何与我的场景真正相关的内容。
我有一个摘要页面,其中我iframe
用户在前往摘要页面的路径中浏览了多个页面。在每个被iframed的页面中。我正在使用.toggle
展开/折叠页面内容。
我发现的问题是,我在首次加载时在摘要页面上使用脚本,使iframe
包含的页面内容大小,但是当我点击时要切换该内容并将其折叠,它会使iframe
保持相同的大小,以便有大量的空白。
我猜我需要从包含的页面发回一些内容到摘要页面,内容大小已经改变,因此重新调整iframe
大小,但我不确定如何做到这一点。
有人可以指出我正确的方向吗?
文件的一个例子是......
Parent.html
<link rel="stylesheet" type="text/css" href="styles.css" />
<script type="text/javascript">
// Resize an iframe so it's as tall as its contents. This could be much shorter but is expanded for clarity.
function size_frame(frame_name, frame_id)
{
// Get the iframe element
var frame_element = document.getElementById(frame_id);
// Get the iframe frame-window object. Note this has different properties to frame_element.
var frame_window = frames[frame_name];
// Set the height to 1px first, because some browsers will give you the maximum height of either the
// frame or its contents, when you try to read the scrollHeight property as we do below.
frame_element.style.height = "1px";
// set the height of the iframe element to the "scrollHeight" of the document element of the frame window.
frame_element.style.height = frame_window.document.documentElement.scrollHeight +"px";
}
</script>
<h1>SUMMARY</h1>
<table border="0" cellspacing="0" cellpadding="0" width="850">
<tr>
<td><iframe src="child1.html" width="850" frameborder="0" scrolling="no" name="child1" id="child1" onload="size_frame('child1','child1');"></iframe></td>
</tr>
</table>
Child.html:
<link rel="stylesheet" type="text/css" href="styles.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$().ready(function () {
$('th[event-type-header]').bind('click', function () {
var eventType = $(this).attr('event-type-header');
$('tr[event-type="' + eventType + '"]').toggle('hide-event-type');
});
});
</script>
<h1>Child Page</h1>
<table width="800" border="0" cellspacing="0" cellpadding="0" class="content">
<tr>
<th class="content" event-type-header="childPage">
Header <img src="arrow_down.gif" align="right" width="15" />
</th>
</tr>
<tr class="content2" event-type="childPage">
<td align="center">
<table width="750" cellpadding="0" cellspacing="0" class="content">
<tr>
<th class="content" colspan="2">Sub Heading</th>
</tr>
<tr class="content2">
<td>
Some Text
</td>
</tr>
</table>
</td>
</tr>
</table>
答案 0 :(得分:0)
您需要使用offsetHeight,而不是scrollHeight。