iframe 根据内容自动改变大小

最近工作遇到一个iframe的问题 就是iframe需要根据内容高度变化 筛选了无数个搜索引擎返回的数据 得到以下解决方案

function reinitIframe(){
    var iframe = document.getElementById("frame_content");
    try{
        var bHeight = iframe.contentWindow.document.body.scrollHeight,
            dHeight = iframe.contentWindow.document.documentElement.scrollHeight,
            height = Math.max(bHeight, dHeight);
            iframe.height =  height;
    }catch (ex){}

}
window.setInterval("reinitIframe()", 200);
</script> 

原理就是 不断刷新页面获得iframe内容页面的高度 赋值给iframe

以下是整个测试页面代码

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ifram 内有树形节点实例</title>
    <script type="text/javascript">
function reinitIframe(){
    var iframe = document.getElementById("frame_content");
    try{
        var bHeight = iframe.contentWindow.document.body.scrollHeight,
            dHeight = iframe.contentWindow.document.documentElement.scrollHeight,
            height = Math.max(bHeight, dHeight);
            iframe.height =  height;
    }catch (ex){}

}
window.setInterval("reinitIframe()", 200);
</script>
</head>
<body style="background-color: red;">
    <iframe scrolling="no" id="frame_content" style="width: 100%;" onload="reinitIframe();" src="./subIframe.html" frameborder="0"></iframe>
</body>
</html>
subIframe.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>iframe 内容页面</title>
    <style type="text/css">
    body{
        background: #ccc;
    }
    </style>
    <script type="text/javascript">
    function CreateNode(str)
   {
      //创建新div
      var NewDiv = document.createElement("div");
      //对div设置 id属性
        NewDiv.id = "dd";
      //创建div内加入的内容
      var NewText = document.createTextNode(str);
      //追加一个新的子结点
        NewDiv.appendChild(NewText);
      //返回新创建结点数据
      return NewDiv;
   }
    function addDome() {
        var node =CreateNode(‘hello world‘);
        console.log(node);
        document.body.appendChild(node);
    }

    </script>

</head>
<body>
<ul>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>hello every body 1</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
    <li>dd</li>
</ul>
    <input type="button" value="add dome" onclick="addDome();">
    <a href="./2.html">首页</a>
</body>
</html>
时间: 2024-08-05 22:04:58

iframe 根据内容自动改变大小的相关文章

Jquery实现&lt;textarea&gt;根据内容自动改变大小

<script type="text/javascript" src="${webRoot}/js/jquery.autogrow.textarea.js"></script> <h3 >任职要求</h3> <div> <textarea  style="outline:none;resize : none; BORDER-BOTTOM: 0px solid; BORDER-LEFT: 0p

让QWidget自动改变大小

问题:自己创建的一个MyWidget类,添加到主窗口的一个QDockWidget,实例化后不能随其自动改变大小.环境:win7.Qt_5_9_5_MSVC2015_64bit在自己写的MyWidget的构造函数里:ui->setupUi(this);setLayout(ui->XXXLayout);注:1.XXXLayout是MyWidget的layout,要使一个widget有自适应大小,就要将其放在一个layout里面. 原文地址:http://blog.51cto.com/9149697

iframe根据内容自动增长 zz (转载)

转自:http://keyknight.blog.163.com/blog/static/36637840200811131911937/ 这贴比较长,没有耐性的朋友请直接拖到帖子末尾的代码示例,或者直接去玩我提供的Demo. Demo页面:主页面 iframe_a.html ,被包含页面 iframe_b.htm 和 iframe_c.html 下面开始讲: 通过Google搜索iframe 自适应高度,结果5W多条,搜索iframe 高度自适应,结果2W多条. 我翻了前面的几十条,刨去大量的

使iframe随内容(target到iframe的内容)改变而自适应高度,完美解决各种获取第一个demo高度后第二个高度不变情况

转自:http://caiceclb.iteye.com/blog/281102 很高兴,终于使用jquery实现了点击外部链接,更改iframe内容时,iframe的高度自适应问题. 失败的测试就不说了,来直接的. 两个链接和iframe: Java代码   <li><a href="selfinfo.jsp" target="c-c-iframe" title="个人信息" >个人信息</a></li

设置textarea文本框不可以拖动改变大小

设置textarea文本框不可以拖动改变大小:在默认状态下,textarea文本框可以使用鼠标拖动调整大小,可能在某些情况下需要禁止此功能.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <titl

iPhone手机解锁效果&amp;&amp;自定义滚动条&amp;&amp;拖拽--Clone&amp;&amp;窗口拖拽(改变大小/最小化/最大化/还原/关闭)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

基于MVC+EasyUI的Web开发框架经验总结(17)--布局和对话框自动适应大小的处理

在我自己的<Web开发框架>中,用了很多年的EasyUI,最新版本EasyUI为1.4.5,随着版本的更新,其很多功能得到了很大的完善和提高,同时也扩展了一些新的功能,以前在布局和对话框弹出层的自动适应大小的问题,也在最近的一些版本得到了解决,本文在迁移到最新EasyUI版本的时候,总结了一些经验,希望对大家使用这个强大的Web界面组件有所帮助. 1.Web主界面的布局调整 上面的布局是顶部内容+一级菜单.左边菜单,右边主内容为页面内容,页面内容是变化的内容,其他部分为不变的,这样的布局代码如

DataGridView单元格内容自动匹配下拉显示

页面显示数据使用的控件是ComponentFactory.Krypton.Toolkit中的KryptonDataGridView控件.在指定“商品”单元格中需要根据用户输入内容自动匹配数据库中商品信息,并且单元格处于编辑模式时显示一个查询图标的按钮,点击该按钮也将显示数据库中所有商品信息. KryptonDataGridView显示控件此处命名为kDGVIndentDetail; 用于下拉显示匹配内容的DataGridView命名为dgv; 1.建立一个DataGridView类型的页面变量用

jquery库实现iframe自适应内容高度和宽度

javascript原生和jquery库实现iframe自适应内容高度和宽度---推荐使用jQuery的代码! ‍<iframe src="index.php" id="mainiframe" name="mainiframe" width="100%"   frameborder="0" scrolling="no" marginwidth="0" margi