`

网页制作中Iframe自适应高度的解决办法

阅读更多
  进行网页设计时,由于网站的海量信息以及标准化的网页制作模式,使得框架网页嵌套成为了首选。这种方式的优越性不仅体现在整个网页整体性的保持及更新上,而且还可以使网站的维护变的相对容易。
  基于界面美观和交互的考虑,在网页制作中隐藏Iframe的border和scrollbar,让人看不出它是个Iframe,而不带边框的Iframe因为能和网页无缝的结合从而在不刷新页面的情况下使更新页面的部分数据成为可能。
  如果Iframe始终调用同一个固定高度的页面,我们直接写死Iframe高度就可以了。由于Iframe要切换页面,或者被包含页面要做动态操作,这时候,就需要程序去同步Iframe高度和被包含页的实际高度了,而Iframe的大小却不像层那样可以“伸缩自如”,所以带来了使用上的麻烦 : 给Iframe设置高度多了的时候会使网页下方出现空白,少了则只能显示部分网页。
  于是在实际工作当中,我总结了一种Iframe动态调整高度的方法,即实现 Iframe 的自适应高度,能够随着页面的长度自动适应以免除页面和 Iframe 同时出现滚动条的现象。

  现在就把解决方法共享一下:
    方法:</strong>在主页面Iframe的onload事件中执行JS,去取得被包含页的高度,然后去同步高度。并在主窗口做一个Interval,不停的来获取被包含页的高度。当Iframe窗体高度高于文档实际高度的时候,高度取的是窗体高度,而当窗体高度低于实际文档高度时,取的是文档实际高度。因此,要想办法在同步高度之前把高度设置到一个比实际文档低的值。所以,添加 onload="this.height=100",让页面加载的时候先缩到足够矮,然后再同步到一样的高度。
  代码如下所示:
    <Iprame src="a.html" name="a" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" id="a" onload="this.height=100" style="WIDTH:100%"></Iframe>
//height=100这个数值可以根据需要自行设置,即页面加载时显示的最小高度。

<script type="text/javascript">
  function reinitIframe(){
    var Iframe = document.getElementById("a");
    try {
         //声明变量取值
var bHeight =iframe.contentWindow.document.body.scrollHeight;
         var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;
         var height = Math.max(bHeight, dHeight);//取最大值
iframe.height = height;
        } catch (ex) {
        }
  }
  window.setInterval("reinitIframe()", 200);
</script>

因此,应用此段代码即可解决Iframe自适应高度的问题。
   
分享到:
评论

相关推荐

    50条网页制作小技巧集锦.pdf

    5. **IFrame自适应高度**:通过JavaScript,可以实现IFrame的高度自适应,例如,当IFrame内容发生变化时,更新IFrame的高度。这可以通过监听`onload`事件并修改IFrame的`style.height`来实现。 6. **浏览器图标设置...

    js非常好用的代码,不要错过!

    - 为实现iframe自适应高度,可以利用JavaScript的 `onload` 事件和 `document.body.scrollHeight` 获取内容高度并动态设置。 5. 更改浏览器图标(Favicon): - 使用 `...

    DreamweaverCS5各种代码大全

    为了使iframe高度自适应其内容长度,可以使用JavaScript: ```html &lt;iframe name="pindex" src="index.asp" scrolling="auto" width="100%" height="100%" onload="document.all['pindex'].style.height=pindex....

    jQuery滚动插件

    同时,我们还可以利用jQuery实现IFrame的高度自适应,确保内容完全显示: ```javascript function resizeIframe(iframe) { iframe.height(iframe.contents().find('body').outerHeight()); } resizeIframe($('...

    div+css布局中常用方法汇总.docx

    1. **文本框textarea自适应高度**:可以通过设置`textarea`的`style`属性,如`overflow-y: visible`,使其随内容自动调整高度。 2. **鼠标指针样式**:使用`cursor: pointer`可以使元素的鼠标指针变为手形,提示...

    《程序天下:JavaScript实例自学手册》光盘源码

    5.8 iframe自适应高度 5.9 类似MSN的消息提示 5.10 只打印iframe的内容 第6章 下拉列表特效 6.1 下拉框实现多选 6.2 实现两个select的同步 6.3 被选中的列表项下次不能再选 6.4 不带滚动条的select 6.5 从一个下拉...

    程序天下:JavaScript实例自学手册

    5.8 iframe自适应高度 5.9 类似MSN的消息提示 5.10 只打印iframe的内容 第6章 下拉列表特效 6.1 下拉框实现多选 6.2 实现两个select的同步 6.3 被选中的列表项下次不能再选 6.4 不带滚动条的select 6.5 从一个下拉...

    小试SVG之新手小白入门教程

    这种特性使得SVG在网页设计、图标制作、数据可视化等领域有着广泛的应用。 SVG图像可以被嵌入到HTML文档中,有多种方法实现这一目标。例如,可以使用`&lt;img&gt;`、`&lt;object&gt;`、`&lt;embed&gt;`或`&lt;iframe&gt;`标签来引入SVG文件...

    DotNetTextBox所见即所得编辑器控件 v3.3.1

    &lt;br&gt;2007/6/25 Version 3.1.5 beta &lt;br&gt;Updates: 1) 修正在VS2005设计模式中无法动态调整控件高度的BUG。 2) 修正height属性无效的BUG。 3) 修正CodeHighlighter外挂插件调用图片位置指向不正确...

Global site tag (gtag.js) - Google Analytics