今天在给用户做一个布局时遇到一个问题,当使用html5的iframe标签做页面嵌入动作时,页面的搞定没有办法设置为源页面的搞定,这可是一个头疼的问题,不显示滚动条吧内容显示不全,如果显示严重影响美观,最后翻看了html5关于iframe的文档,但是官方并没有满足该要求的属性,没办法只用用js做一个动态调用了。下面我们就来看看如何用js来搞定这个问题的。
方案一
这个是在网上查找到的教程,用的JavaScript来获取源页面的高度然后赋值给iframe标签中的heaght元素实现自使用高度。
代码
- <!
- <iframe src=“../chenxing.html” id=“iframe” frameborder=“0” scrolling=“no” onload=“iFrameHeight();” width=“100%”></iframe>
- <!
- function iFrameHeight() {
- var ifm = document.getElementById(“iframe”);
- var subWeb = document.frames ? document.frames[“iframe”].document : ifm.contentDocument;
- if (ifm != null && subWeb != null) {
- ifm.height = subWeb.body.scrollHeight;
- }
- }
优点:
- 无需加载jQuery库简单易操作;
缺点:
- 需要判断浏览器的高度,处理逻辑稍有复杂;
方案二
使用jQuery的方式实现,现在大多数网站都是基于jQuery开发的,一般都调用了jQuery库,所以用这个方法非常实用,而且用jQuery实现比JavaScript性能要好。
引用页面放置以下代码
- $(window.parent.document).find(“#iframe”).load(function(){
- var main = $(window.parent.document).find(“#iframe”);
- var thisheight = $(document).height()+30;
- main.height(thisheight);
- });
目标页面放置代码
- $(“#iframe”).load(function(){
- var mainheight = $(this).contents().find(“body”).height()+30;
- $(this).height(mainheight);
- });
这个方法布置代码比较难,要改两个页面,但是性能好,所以大家仔细甄选看看那个适合自己使用。
要是学的不好,还是直接请人做好了。【我们免费建站】