Iframe 自适应宽高

开发中经常遇到IFrame嵌入页面的宽高自适应的问题,经过网上查找,终于找到了完美解决这个问题的
方法。

在父页面中引入 iframeResizer.min.js
并在父页面中写入以下方法

iFrameResize([{log: true}]);

然后在子页面中引入 iframeResizer.contentWindow.min.js
就可以完美解决自适应的问题了!

附:iframeResizer GitHub地址

代码示例:

父页面

<!DOCTYPE html>
<html>
<head>
    <title>Iframe</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="renderer" content="webkit"/>
    <meta name="viewport" content="width=1200"/>
</head>
<style>

</style>
<body>
<div id="app">
    <div @click="switchPage(1)" >son-1</div>
    <div @click="switchPage(2)" >son-2</div>
    <div id="main" class="main">
        <iframe frameborder="0" name="content" :src="contentUrl"></iframe>
        <iframe frameborder="0" name="content" :src="contentUrl"></iframe>
        <iframe frameborder="0" name="content" :src="contentUrl"></iframe>
    </div>
</div>

<script src="jquery.js"></script>
<script src="vue.js"></script>
<script src="iframeResizer.min.js"></script>

<script th:inline="javascript">
    var globalVue = new Vue({
        el: '#app',
        data: function () {
            return {
                contentUrl:"son-1.html",
            };
        },
        created: function () {

        },
        mounted: function () {
            iFrameResize([{log: true}]);
        },
        destroy: function () {

        },
        methods: {
            switchPage:function(type){
                let that = this;
                if (type==1) {
                    that.contentUrl="son-1.html"
                }else{
                    that.contentUrl="son-2.html"
                }
                console.log(that.contentUrl)
            }
        }
    });
</script>
</body>

</html>

子页面1

<!DOCTYPE html>
<html>
<head>
    <title>Iframe</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="renderer" content="webkit"/>
    <meta name="viewport" content="width=1200"/>
</head>
<style>
    .son-1{
        width: 100%;
        height: 800px;
        background: #DDDDDD;
    }
    .add-div{
        width: 100%;
        height: 50px;
        background: #FFFF77;
    }
</style>
<body>
<div id="app">
    <button @click="addElm()">添加</button>
    <div id="son-1" class="son-1">son-1</div>
</div>

<script src="jquery.js"></script>
<script src="vue.js"></script>
<script src="iframeResizer.contentWindow.min.js"></script>

<script>
    var globalVue = new Vue({
        el: '#app',
        data: function () {
            return {
                addHtml:"",
            };
        },
        created: function () {

        },
        mounted: function () {

        },
        destroy: function () {

        },
        methods: {
            addElm:function(){
                let that = this;
                that.addHtml = that.addHtml + "<div class=\"add-div\">添加</div>\n";
                $("#son-1").before(that.addHtml);
            }
        }
    });
</script>
</body>

</html>

子页面2

<!DOCTYPE html>
<html>
<head>
    <title>Iframe</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="renderer" content="webkit"/>
    <meta name="viewport" content="width=1200"/>
</head>
<style>
    .son-2{
        width: 100%;
        height: 1200px;
        background: #FFFF77;
    }
</style>
<body>
<div id="app">
    <div class="son-2">son-2</div>
</div>

<script src="jquery.js"></script>
<script src="vue.js"></script>
<script src="iframeResizer.contentWindow.min.js"></script>

<script>
    var globalVue = new Vue({
        el: '#app',
        data: function () {
            return {
                
            };
        },
        created: function () {

        },
        mounted: function () {

        },
        destroy: function () {

        },
        methods: {

        }
    });
</script>
</body>

</html>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值