zoukankan      html  css  js  c++  java
  • 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=" 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>
  • 相关阅读:
    unity 颜色空间
    Shader 常用常量 函数等
    Unity3d cg Shader 相关的方法
    DirectX HLSL Shader 内置函数
    unity texture2d 图片尺寸压缩
    Unity中Zxing生成二维码只能生成256大小图片的解决方案
    读取保存 调用系统选框 仅限Win/Mac/WebGL
    Unity编辑器中递归设置文件夹下资源的 AssetBundle Tag 可多选
    扣绿幕Shader(可自选颜色)
    智能手环体验:UP24
  • 原文地址:https://www.cnblogs.com/ElvinLong/p/4510501.html
Copyright © 2011-2022 走看看