这篇文章主要介绍了射流研究…实现内联框架自适应高度的方法,结合实例形式分析了射流研究…实现内联框架高度自适应的实现技巧,并给出了项目示例供大家参考,需要的朋友可以参考下
本文实例讲述了射流研究…实现内联框架自适应高度的方法。
射流研究…自适应高度,其实就是设置内联框架的高度,使其等于内嵌网页的高度,从而看不出来滚动条和嵌套痕迹。对于用户体验和网站美观起着重要作用。如果内容是固定的,那么我们可以通过半铸钢钢性铸铁(铸造半钢)来给它直接定义一个高度,同样可以实现上面的需求。当内容是未知或者是变化的时候。这个时候又有几种情况了。
iframe内容未知,高度可预测
这个时候,我们可以给它添加一个默认的半铸钢钢性铸铁(铸造半钢)的最小高度值,然后同时使用Java脚本语言改变高度。常用的兼容代码有:
//文档。domain='财宝鉴。com’;
函数setIframeHeight(iframe) {
if (iframe) {
var iframeWin=iframe。内容窗口| | iframe。内容文档。父窗口;
if (iframeWin.document.body) {
iframe。height=iframewin。文档。文档元素。滚动高度| | iframewin。文档。身体。滚动高度;
}
}
};
window.onload=function () {
setIframeHeight(文档。getelementbyid(' external-frame ');
};
演示地址演示一(如果在同个顶级域名下,不同子域名之间互通信息,设置文档。域='蔡宝健。' com '只要修改以上的内联框架的身份证明即可了。或者你可以直接在内联框架里面写代码,我们一般为了不污染超文本标记语言代码,建议使用上面的代码。
iframe src=' back top。' html ' frame border=' 0 ' scrolling=' no ' id=' external-frame ' onload=' setIframeHeight(this)'/iframe
演示二
多个iframe的情况下
脚本语言='javascript '
//输入你希望根据页面高度自动调整高度的内联框架的名称的列表
//用逗号把每个内联框架的身份证明分隔。例如:['myframe1 ',' myframe2'],可以只有一个窗体,则不用逗号。
//定义内联框架的身份证明
var iframeids=[' test '];
//如果用户的浏览器不支持内联框架是否将内联框架隐藏是表示隐藏,不表示不隐藏
var iframehide='是
函数dyniframesize()
{
var dyniframe=新数组()
for(I=0;ii帧id。长度;我)
{
if (document.getElementById)
{
//自动调整内联框架高度
dyniframe[dyniframe。长度]=文档。getelementbyid(iframeids[I]);
if (dyniframe[i]!window.opera)
{
dyniframe[I]。风格。display=' block
if (dyniframe[i].内容文档dyniframe[I]。内容文档。身体。偏移高度)//如果用户的浏览器是以开发因特网浏览器闻名
dyniframe[i].height=dyniframe[I]。内容文档。身体。偏移高度;
else if (dyniframe[i].文档dyniframe[I]。文档。身体。滚动高度)//如果用户的浏览器是工业管理学(工业工程)
dyniframe[i].height=dyniframe[I]。文档。身体。滚动高度;
}
}
//根据设定的参数来处理不支持内联框架的浏览器的显示问题
如果((文档。所有| |文档。getelementbyid)iframe hide==' no ')
{
var tempobj=document.all?文档。all[iframeids[I]]:document。getelementbyid(iframeids[I]);
临时对象。风格。display=' block
}
}
}
if (window.addEventListener)
window.addEventListener('load ',dyniframesize,false);
else if (window.attachEvent)
window.attachEvent('onload ',dyniframesize);
其他
window.onload=dyniframesize
/脚本
演示三
针对知道的iframe的ID调用
函数iframeAutoFit(iframeObj){
setTimeout(function(){if(!iframeObj)返回;iframeObj.height=(iframeObj .文档?iframeObj .文档。身体。滚动高度:iframe obj。内容文档。身体。offset height);},200)
}
演示四
内容宽度变化的iframe高度自适应
iframe src=' backtop。' html ' frame border=' 0 ' scrolling=' no ' id=' test ' onload=' this。高度=100 '/iframe
脚本类型='文本/javascript '
函数reinitIframe(){
var iframe=文档。getelementbyid(' test ');
尝试{
var BH height=iframe。内容窗口。文档。身体。滚动高度;
var d height=iframe。内容窗口。文档。文档元素。滚动高度;
var高度=数学。max(BH高度,d高度);
iframe.height=height
console.log(高度);
}catch (ex){}
}
窗户。setinterval(' reinitIframe()',200);
/脚本
演示五打开调试运行窗口可以看到运行。
跨域下的iframe自适应高度
跨域的时候,由于射流研究…的同源策略,父页面内的射流研究…不能获取到内联框架页面的高度。需要一个页面来做代理。方法如下:假设www.a.com下的一个页面a.html要包含www.b.com下的一个页面c.html。我们使用www.a.com下的另一个页面agent.html来做代理,通过它获取内联框架页面的高度,并设定内联框架元素的高度106 .a.html中包含iframe:
Iframe src=' http://www。' id=' Iframe ' frame border=' 0 ' scrolling=' no ' style=' border:0px;'/iframe
在c.html中加入如下代码:
iframe id=' c _ iframe ' height=' 0 ' width=' 0 ' src=' http://www。a . com/agent。html ' style=' display:none '/iframe
脚本类型='文本/javascript '
(函数自动高度(){
var b _ width=math。max(文档。身体。文档滚动宽度。身体。客户端宽度);
var b _ height=math。max(文档。身体。文档滚动高度。身体。客户身高);
var c _ iframe=文档。getelementbyid(' c _ iframe ');
c _ iframe。src=c _ iframe。src ' # ' b _ width ' | ' b _ height//这里通过混杂传递b.htm的宽高
})();
/脚本
最后,agent.html中放入一段js:
脚本类型='文本/javascript '
var b _ Iframe=window。父母。父母。文档。getelementbyid(' Iframe ');
var hash _ URL=window。位置。哈希;
if(hash_url.indexOf('#')=0){
var哈希宽度=哈希URL。split(' # ')[1].split(' | ')[0]" px ";
var哈希高度=哈希URL。split(' # ')[1].split(' | ')[1]" px ";
b _ iframe。风格。宽度=hash _ width
b _ iframe。风格。height=hash _ height
}
/脚本
agent.html从统一资源定位器中获得宽度值和高度值,并设置内联框架的高度和宽度(因为agent.html在www.a.com下,所以操作a.html时不受Java脚本语言的同源限制)演示六
分享给大家供大家参考,具体如下:
iframe id=' mainFrame ' name=' mainFrame ' src='/zwgk/hsearchview ' width=' 740 ' frame border=' 0 ' scrolling=' no ' scrolling=' no ' frame border=' 0 '
/iframe
脚本类型='文本/javascript '语言='javascript '
函数reinitIframe(){
var iframe=文档。getelementbyid('大型机');
尝试{
var BH height=iframe。内容窗口。文档。身体。滚动高度;
var d height=iframe。内容窗口。文档。文档元素。滚动高度;
var高度=数学。max(BH高度,d高度);
iframe.height=height
}catch (ex){}
}
窗户。setinterval(' reinitIframe()',100);
/脚本
PS:高度自适应应用广泛,本站的很多在线工具也使用了这一技巧,列举如下几个工具供大家参考:
Java脚本语言在线格式化工具(基于美化网插件):
http://tools.jb51.net/code/js_beautify
在线颜色选择器工具/RGB颜色查询对照表:
http://tools.jb51.net/color/colorpicker
在线个人所得税计算器:
http://tools.jb51.net/jisuanqi/tax_calc
宋词在线查询:
http://tools.jb51.net/bianmin/songci
更多关于Java脚本语言相关内容感兴趣的读者可查看本站专题: 《JavaScript操作DOM技巧总结》 、 《JavaScript数组操作技巧总结》 、 《JavaScript排序算法总结》 、 《JavaScript遍历算法与技巧总结》 、 《JavaScript数学运算用法总结》 、 《JavaScript数据结构与算法技巧总结》 、 《JavaScript查找算法技巧总结》 及《JavaScript错误与调试技巧总结》
希望本文所述对大家Java脚本语言程序设计有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。