如何动态调整IFrame的大小?

kikoBean 2004-07-31 03:52:17
我有若干IFrame在页面上。每个IFrame里面都没有页面,即:开始每个IFrame的scr='about:blank',代码如下:
<iframe id="MyFrame" class="MyFrameClass" src="about:blank"></iframe>
首先我设置了样式表如下所示:
<style>
.MyFrameClass{
overflow:auto;
height:expression(Resize(this));
width:100%;
}
</style>
里面有一段js函数用来判断当前IFrame里面的页面产生滚动条时IFrame调整方式,代码如下:
function Resize(obj){
if(obj.src=='about:blank'){
obj.style.height = '500px';
}
else{
obj.style.height = obj.document.body.scrollHeight+10;
}
obj.style.width = '100%';
}
function LoadPage(obj2,obj1){
obj2.src = obj1;
Resize(obj2);
}
现在问题是:
我要动态改变IFrame里的src,写有如下代码:
<input type="Button" value="Change SRC" onClick="LoadPage(document.getElementById('POFrame'),'iniframe.html')">
现在的结果是:
点击一下按钮框架变长了一些,再点又长了一些,...这样无止境的变长,直到没有滚动条,但是那时它还在长长。
我的目的是点击以后完整显示页面内容不要出现滚动条,如果src为空则显示一个固定的大小就可以了。高手帮忙!
...全文
577 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑马 2004-07-31
  • 打赏
  • 举报
回复
<iframe name="test" src="a.jsp" width=100% Frameborder=No Border=0 Marginwidth=0 Marginheight=0 Scrolling=No onload='var f=document.all["test"]; var b=f.Document.body; f.height=b.scrollHeight'></iframe>

起作用的是:onload='var f=document.all["test"]; var b=f.Document.body; f.height=b.scrollHeight'
kikoBean 2004-07-31
  • 打赏
  • 举报
回复
up
cuike519 2004-07-31
  • 打赏
  • 举报
回复
完整的测试页面可以调整大小页面:
<HTML>
<HEAD>
<SCRIPT LANGUAGE=javascript>
<!--
function reSize(obj)
{
try{
var oBody = ifrm.document.body;
var oFrame = obj;
if(oFrame.src=='about:blank'){
oFrame.style.height = '500px';
}
else{
//alert(oBody.style.scrollHeight);
var realHeight = oBody.scrollHeight + (oBody.offsetHeight - oBody.clientHeight);
//alert(realHeight);
if(oBody.scrollHeight >=500){
oFrame.style.height = realHeight;
//alert(oFrame.style.height);
}
else{
oFrame.style.height = '500px';
}
}
oFrame.style.width = '100%';
}
catch(e){
window.status = 'Error: ' + e.number + '; ' + e.description;
}
}
function LoadPage(obj,obj1){
obj.src = obj1;
//setTimeout("reSize(obj)",100);
}
//-->
</SCRIPT>
<style>
.ab{
aaa:expression(reSize(this));
}
</style>
</HEAD>
<BODY>
dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>
dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>
dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>
dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>dafsdfas<p>
<iframe onresize=reSize(this) id=ifrm src='about:blank' class="ab"></iframe>
<input type="button" value="Resize" onClick="reSize(document.getElementById('ifrm'))">
<input type="button" value="LoadBigPage" onClick="LoadPage(document.getElementById('ifrm'),'iniframe.html')">
<input type="button" value="LoadSmallPage" onClick="LoadPage(document.getElementById('ifrm'),'Untitled-y.htm')">

</BODY>
</HTML>
cuike519 2004-07-31
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<SCRIPT LANGUAGE=javascript>
<!--
function reSize(obj)
{
try{
var oBody = ifrm.document.body;
var oFrame = obj;
if(oFrame.src=='about:blank'){
oFrame.style.height = '500px';
}
else{
oFrame.style.height = oBody.scrollHeight + (oBody.offsetHeight - oBody.clientHeight);
}
oFrame.style.width = '100%';
}
catch(e){
window.status = 'Error: ' + e.number + '; ' + e.description;
}
}
function LoadPage(obj,obj1){
obj.src = obj1;
reSize(obj);
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<iframe onresize=reSize(this) id=ifrm src='about:blank'></iframe>
<input type="button" value="Resize" onClick="reSize(document.getElementById('ifrm'))">
<input type="button" value="LoadPage" onClick="LoadPage(document.getElementById('ifrm'),'iniframe.html')">
</BODY>
</HTML>
cuike519 2004-07-31
  • 打赏
  • 举报
回复
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q278/4/69.asp&NoWebContent=1

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧