zoukankan      html  css  js  c++  java
  • iframe自适应高度问题

    1、不跨域
    iframe的页面直接修改包裹着它的iframe的高度就行
    2、跨域
    用postMessage
    https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

    下面是demo

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <iframe src="http://127.0.0.1:4321/b.html" frameborder="0" width="100%" id="iframe-b"></iframe>
    
        <script type="text/javascript">
            window.onload = function() {
                window.addEventListener('message', function(event) {
                if (event.origin === "http://127.0.0.1:4321") {
                    document.getElementById("iframe-b").style.height = event.data + "px";
                    console.log(event.data)
                }
                }, false);
            }
        </script>
    
    </body>
    </html>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <style>
        .hello {
             200px;
            height: 500px;
            background-color: red;
        }
    </style>
    <body>
        <div class="hello">
    
        </div>
        <script type="text/javascript">
            // window.onload = function() {
            //     var h  = document.body.scrollHeight;
            //     parent.postMessage(h, "http://127.0.0.1:1234");
            // }
            setTimeout(() => {
                var h  = document.body.scrollHeight;
                parent.postMessage(h, "http://127.0.0.1:1234");
            }, 500);
        </script>
    </body>
    </html>
    
  • 相关阅读:
    Spring (4)框架
    Spring (3)框架
    Spring (2)框架
    javaSE面试题总结 java面试题总结
    分层结构
    三次握手
    17_网络编程
    16_多线程
    Ecplise中指定tomcat里Web项目发布文件
    Web 项目没有发布到我们安装的tomcat目录下
  • 原文地址:https://www.cnblogs.com/fazero/p/10315594.html
Copyright © 2011-2022 走看看