1

过去两天有一个问题一直困扰着我:(

我设置了一个 HTML 网页,其中包含一个加载框架集文档的iFrame。是的,我知道,框架是古老的技术,不应该使用,但这是 Adob​​e 的 RoboHelp 工具产生的输出,所以我需要处理它。

我试图添加 JavaScript 代码的变体,这些代码将调整 iFrame 的高度以适应浏览器窗口的剩余高度。它在 Chrome、Safari、Firefox 等中运行良好,但与大多数组织一样,客户端已标准化为古老的 IE(Internet Explorer 8),而且看起来它们不会很快向前发展。

此处传达了当前问题的图像:

iframe 不占用 IE 8 中的剩余空间

简而言之,我无法让 iFrame 占据Internet Explorer (8) 中横幅和页脚之间的剩余空间。我已经使用 CSS 样式和 JavaScript 代码的变体来“读取”(我猜)“frameset(?)”文档的高度,以便将高度传递给内框以调整其大小。我见过的大多数脚本都依赖于 iFrame 中文档的高度,但是当你有一个框架集时会发生什么?

这是包含 iFrame 的主页的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style>
body {
width:100%;
height:100%
}
</style>
<script language="javascript" type="text/javascript">
function autoHeight(e)
{
    alert(e);
    if ( e.contentDocument ) {

        e.height = e.contentDocument.body.offsetHeight + 35;
    }
    else {
        e.height = e.contentWindow.document.body.scrollHeight + 35;
        alert("e.contentWindow = "+ e.contentWindow);
    }
}



this.onload = function(e) {
// or add it to the onload attribute of the body tag...
var ifr = document.getElementById('helpFrame');
    autoHeight(ifr);
}

</script>
</head>
<body>
<!--banner code here, not too important -->
<iframe frameborder="0" id="helpFrame" align="bottom" src="/RCMP/prod/index.htm" width="100%" height="100%" scrolling="no" style="height:100%;">
    Your browser does not support iframes.
</iframe>
<!-- added some paragraphs to actually "push" the footer down for now. -->
<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>
<!--footer code here-->
</body>
</html>

这是框架集的代码(包含在 iFrame 中,来自 Adob​​e 的 RoboHelp 发布的输出)。很多javascript可以忽略,相信重点是frameset)

<html>
<head>
 <link rel="shortcut icon" href="favicon.ico">
 <title>Orientation Guide To E-Division Headquarters</title>

 <meta name="generator" content="Adobe RoboHelp 9" />
 <meta name="description" content="WebHelp 5.50" />

</head>


<frameset cols="100%,*" frameborder=no border=0>
  <frame src="whnjs.htm">
  <frame src="whskin_blank.htm" noresize>
</frameset><noframes></noframes>

</html>

所以挑战是让 iFrame 在 IE 中全高(到页脚)!任何建议/解决方案将不胜感激。如果我不需要的话,我真的不想使用 jQuery——JavaScript 和 CSS 会很好。

谢谢!

4

0 回答 0