1、可以给它添加一个默认的CSS的min-height值,然后同时使用JavaScript改变高度。常用的兼容代码有:
// documentdomain = "caibaojiancom";function setIframeHeight(iframe) {
if (iframe) {
var iframeWin = iframecontentWindow || iframecontentDocumentparentWindow;
if (iframeWindocumentbody) {
iframeheight = iframeWindocumentdocumentElementscrollHeight || iframeWindocumentbodyscrollHeight;
}
}
};
windowonload = function () {
setIframeHeight(documentgetElementById('external-frame'));
};
(如果在同个顶级域名下,不同子域名之间互通信息,设置documentdomain="域名com"
2、只要修改以上的iframe的ID即可了。或者你可以直接在iframe里面写代码,我们一般为了不污染HTML代码,建议使用上面的代码。
<iframe src="backtophtml" frameborder="0" scrolling="no" id="external-frame" onload="setIframeHeight(this)"></iframe>3、多个iframe的情况下
<script language="javascript">//输入你希望根据页面高度自动调整高度的iframe的名称的列表
//用逗号把每个iframe的ID分隔 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。
//定义iframe的ID
var iframeids=["test"];
//如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏
var iframehide="yes";
function dyniframesize()
{
var dyniframe=new Array()
for (i=0; i<iframeidslength; i++)
{
if (documentgetElementById)
{
//自动调整iframe高度
dyniframe[dyniframelength] = documentgetElementById(iframeids[i]);
if (dyniframe[i] && !windowopera)
{
dyniframe[i]styledisplay="block";
if (dyniframe[i]contentDocument && dyniframe[i]contentDocumentbodyoffsetHeight) //如果用户的浏览器是NetScape
dyniframe[i]height = dyniframe[i]contentDocumentbodyoffsetHeight;
else if (dyniframe[i]Document && dyniframe[i]DocumentbodyscrollHeight) //如果用户的浏览器是IE
dyniframe[i]height = dyniframe[i]DocumentbodyscrollHeight;
}
}
//根据设定的参数来处理不支持iframe的浏览器的显示问题
if ((documentall || documentgetElementById) && iframehide=="no")
{
var tempobj=documentall documentall[iframeids[i]] : documentgetElementById(iframeids[i]);
tempobjstyledisplay="block";
}
}
}
if (windowaddEventListener)
windowaddEventListener("load", dyniframesize, false);
else if (windowattachEvent)
windowattachEvent("onload", dyniframesize);
else
windowonload=dyniframesize;
</script>
4、打开调试运行窗口可以看到运行。·
跨域下的iframe自适应高度
跨域的时候,由于js的同源策略,父页面内的js不能获取到iframe页面的高度。需要一个页面来做代理。
方法如下:假设>
ahtml中包含iframe:
<iframe src=";5、在chtml中加入如下代码:
<iframe id="c_iframe" height="0" width="0" src=";6、最后,agenthtml中放入一段js:
<script type="text/javascript">var b_iframe = windowparentparentdocumentgetElementById("Iframe");
var hash_url = windowlocationhash;
if(hash_urlindexOf("#")>=0){
var hash_width = hash_urlsplit("#")[1]split("|")[0]+"px";
var hash_height = hash_urlsplit("#")[1]split("|")[1]+"px";
b_iframestylewidth = hash_width;
b_iframestyleheight = hash_height;
}
</script>
agenthtml从URL中获得宽度值和高度值,并设置iframe的高度和宽度(因为agenthtml在>
iframe里面加载的页面跟本页面的加载完成时间是不一定的,所以你这里直接取,可能iframe的页面还没加载完。采用以下方式试一下:
<iframe src="jsp" onload="这里调用你要运行的代码"></iframe>
以上就是关于HTML的frame框架怎么自适应高度全部的内容,包括:HTML的frame框架怎么自适应高度、.net iframe 自适应高度JS代码、在页面加载完成后js获取table的高度不正确,刷新后获取的高度就正确了,求原因及解决方法。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)