JS自适应高度,其实就是设置iframe的高度,使其等于内嵌网页的高度,从而看不出来滚动条和嵌套痕迹。对于用户体验和网站美观起着重要作用。
如果内容是固定的,那么我们可以通过CSS来给它直接定义一个高度,同样可以实现上面的需求。当内容是未知或者是变化的时候。这个时候又有几种情况了。
第一
iframe内容未知,高度可预测
这个时候,我们可以给它添加一个默认的CSS的min-height值,然后同时使用JavaScript改变高度。常用的兼容代码有:
注:如果在同个顶级域名下,不同子域名之间互通信息,设置document.domain=”mmeasy.cn”
第二
只要修改以上的iframe的ID即可了。或者你可以直接在iframe里面写代码,我们一般为了不污染HTML代码,建议使用上面的代码。
第三
多个iframe的情况下
第四
针对知道的iframe的ID调用
第五
内容宽度变化的iframe高度自适应
第六
跨域下的iframe自适应高度
跨域的时候,由于js的同源策略,父页面内的js不能获取到iframe页面的高度。需要一个页面来做代理。
方法如下:假设www.a.com下的一个页面a.html要包含www.b.com下的一个页面c.html。
我们使用www.a.com下的另一个页面agent.html来做代理,通过它获取iframe页面的高度,并设定iframe元素的高度。
a.html中包含iframe:
在c.html中加入如下代码:
最后,agent.html中放入一段js:
注意:agent.html从URL中获得宽度值和高度值,并设置iframe的高度和宽度(因为agent.html在www.a.com下,所以操作a.html时不受JavaScript的同源限制)
免责声明:
1、本站提供的一切软件、教程和内容信息等资源均仅限用于学习和研究目的,不保证其完整性,严禁将上述资源用于商业或者非法用途;
2、本站仅提供共享服务,不提供任何技术咨询服务,请知悉谅解;
3、如果对相关资源比较满意,请前往购买支持正版,得到更好的正版服务;
4、本站信息来自网络公开信息的收集整理,版权争议与本站无关。我们非常重视版权问题,如有侵权请联系我们,我们会第一时间进行处理。
本文链接:https://www.mmeasy.cn/1635.html