1. 程式人生 > 實用技巧 >layer彈出子iframe層 父子頁面傳值的方法

layer彈出子iframe層 父子頁面傳值的方法

1.父頁面

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>折扣管理</title>
        <link rel="icon" type="image/x-icon" href="../images/Strawberry.png"/>
        <link rel="stylesheet" type="text/css" href="../../../layui/css/layui.css"/>
        <link rel="
stylesheet" type="text/css" href="../css/index.css"/> </head> <body> <div class="topContent"> <div class="title">折扣配置</div> <div id="fatherTest"></div> <div class="btn">新增折扣</div> </div> <div class
="content"> <div class="form" id="form"> <form class="layui-form" action=""> <div class="layui-form-item"> <label class="layui-form-label">城市大類</label> <select
name="city" lay-verify=""> <option value="">請選擇一個城市</option> <option value="010">北京</option> <option value="021">上海</option> <option value="0571">杭州</option> </select> </div> <div class="layui-form-item"> <label class="layui-form-label">輸入框</label> <div class="layui-input-block"> <input type="text" name="title" required lay-verify="required" placeholder="請輸入標題" autocomplete="off" class="layui-input"> </div> </div> </form> </div> </div> <script src="../../../layui/layui.js"></script> <script src="../../../js/jquery-3.4.1.min.js"></script> <script type="text/javascript"> layui.use('form', function(){ var form = layui.form; //監聽提交 form.on('submit(formDemo)', function(data){ layer.msg(JSON.stringify(data.field)); return false; }); $('.btn').click(function(){ layer.open({ type: 2,//type: 2 為iframe層 title: '我是子頁面', shadeClose: true, shade: 0.8, area: ['60%', '50%'], content: 'son.html' , //這裡content是一個URL,如果你不想讓iframe出現滾動條,你還可以content: ['http://sentsin.com', 'no'] btn: ['確定', '取消'] , yes:function(index,layero){ /*$(layero).find("iframe").eq(0).contents();多個iframe層使用才使用eq , * 需要先找到iframe,才能得到iframe裡面的其他元素來進行傳值取值 */ //獲取子頁面元素 -- $("iframe").contents().find("子頁面id名") var father = $(layero).find("iframe").contents(); //找到父頁面中的第一個input傳給子頁面 var form = $('#form').find('input').eq(0).val(); father.find("#sonTest").html('父頁面選擇的值是---'+ form); //呼叫子頁面的方法 -- $('iframe')[0].contentWindow.方法名(); $('iframe')[0].contentWindow.funSon(); } }); }) }); function funFather(){ alert('我是父頁面的方法,我被呼叫了') } </script> </body> </html>

2.子頁面

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>新增折扣管理</title>
        <link rel="icon" type="image/x-icon" href="../images/Strawberry.png"/>
        <link rel="stylesheet" type="text/css" href="../../../layui/css/layui.css"/>
        <link rel="stylesheet" type="text/css" href="../css/index.css"/>
    </head>
    <body>
        <div class="topContent">
        </div>
        <div class="content">
            <div id="sonTest"></div>
            <div class="form" id="sonForm">
                <form class="layui-form" action="">
                    <div class="layui-form-item">
                       <label class="layui-form-label">輸入框</label>
                       <div class="layui-input-block">
                          <input type="text" name="title" required  lay-verify="required" placeholder="請輸入標題" autocomplete="off" class="layui-input">
                        </div>
                    </div>
                      <button id="define">點選傳給父頁面</button>
                </form>
            </div>
        </div>
        
        <script src="../../../layui/layui.js"></script>
        <script src="../../../js/jquery-3.4.1.min.js"></script>
        <script type="text/javascript">
            layui.use('form', function(){
              var form = layui.form;              
              //監聽提交
              form.on('submit(formDemo)', function(data){
                layer.msg(JSON.stringify(data.field));
                return false;
              });                    
                
            });
            $('#define').click(function(){
                var sonForm = $('#sonForm').find('input').val();
//獲取父頁面元素 -- $("父頁面id名",window.parent.document) $("#fatherTest",window.parent.document).html('子頁面選擇的值是' + sonForm);
//呼叫父頁面的方法 -- parent.方法名(); parent.funFather(); }); function funSon(){ alert('我是子頁面的方法,我被呼叫了') } </script> </body> </html>