在做分销的时候经常会遇到一种合作模式,就是提供内容页的iframe让分销商签到到自己的网页中。这种合作模式工作量小,开发进度快,但是有一个弊端就是iframe高度不可控制,原因就是iframe的引入是跨域的。在跨域的情况下父窗口无法获得被嵌套页面的高度,而且被嵌套页面也无法通过驻留在其服务器上的js修改父窗口Dom节点的属性。所以我们需要一个媒介,来获得被嵌套页面的高度同时又能修改主界面iframe节点的高度。
案例分析:网站主:多多驿站(www.yododo.cn) 分销商:(www.qugow.com)
网站主提供内容页地址(http://hoteldistr.yododo.com?_id=5
)用(B.html代称) 分销频道网址(http://www.qugow.com/inn/) (用main.html代称),分销商提供的用来控制B.html高度的中间页A.html
思路如下:
在现有主界面main的域a下,被嵌套页面B下,被嵌套页面B又嵌套又嵌套一个在域a下的中间页面A,当用户打开浏览器访问main.html时候载入B,触发B的onload事件获取自身的高度,然后载入A,并将B的高度作为参数传给A的location对象,这样A就可以通过location.hash获得B的高度。由于A和main页面同域,所以可以修改main的dom节点属性,从而达到我们设置iframe标签高度的目的。
相关代码:
iframe的主页面:main.html
<div id="hotels_i">
<iframe src="http://hoteldistr.yododo.com/?_id=5" name="inn" id="inn" style="width:100%;height:725px;" frameborder="0" scrolling="no"></iframe>
</div>
iframe嵌套页面:B.html
<iframe id="contorlDistrIframe" name="contorlDistrIframe" src="" width="0" height="0" style="display:none;" ></iframe>
<script type="text/javascript">
function sethash(){
hashH = document.body.scrollHeight; //获取自身高度
urlC = "${sessionScope.mm_distr.controlIframeUrl}"; //中间页url,调整iframe高度的 为A.html
document.getElementById("contorlDistrIframe").src=urlC+"#"+hashH; //将高度作为参数传递
}
window.onload=sethash;
</script>
中间页面A.html:
<body>
<script type="text/javascript">
var ifr = parent.parent.document.getElementById('inn');
var hash = window.location.hash;
if(hash){
hash = hash.replace('height=', '');
ifr.style.height = (parseInt(hash.split('#')[1]) + 10) + 'px';
}
</script>
</body>
参考文章:http://www.chinaz.com/web/2011/1123/222158.shtml
- 大小: 28.8 KB
分享到:
相关推荐
户外劳动者服务站点(工会爱心驿站)建设实施方案.pdf
创新驿站试点工作方案.pdf
高校毕业生一站式服务驿站建设PPT方案.ppt
DuoDuoMaiCai_Store-setup_1.3.7 多多买菜门店端(出库)1.3.7电脑版 多多买菜门店端 网页版登录地址 多多买菜门店端 安卓版
基于SpringCloud的快递驿站系统源码 基于SpringCloud的快递驿站系统源码 基于SpringCloud的快递驿站系统源码 基于SpringCloud的快递驿站系统源码 基于SpringCloud的快递驿站系统源码 基于SpringCloud的...
恒地锦亭青春驿站项目三维网站建设方案详细.doc
本程序为自适应小波创新 ,它采用了小波变化+pca+svm的算法,svm采取libsvm工具箱,具体过程见:https://blog.csdn.net/m0_68894275/article/details/125721237
菜鸟驿站创业策划书.doc
电商物流“最后一公里”的发展对策研究--以菜鸟驿站为例
数据库课程设计报告--小型超市管理系统,通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库...
此源码主要实现了帮助圆通妈妈驿站入库的功能。
【华南农业大学C语言程序设计】菜鸟驿站包裹管理系统代码+实验报告
社区驿站运营方案.docx
社区驿站运营方案.doc
北京养老驿站服务与需求调查方案.doc
大学生对菜鸟驿站满意度调查问卷
区生活驿站大数据平台系统维保项目实施方案.docx
三亚集眠驿站背包客栈连锁整体方案.pptx
创新驿站试点工作方案.doc