1. 程式人生 > 實用技巧 >layui type:2 iframe子頁面向父頁面傳值

layui type:2 iframe子頁面向父頁面傳值

(耗了我一天時間,我juo得可以記錄一下)

需求:

選擇子頁面表格中的radio或者雙擊該行,得到的改行資料傳到父頁面,由父頁面渲染。

網上的各種方法都用了,父頁面就是獲取不到子頁面傳的值,過了一晚上,睡了一覺,柳暗花明又一村。

layui type:2 iframe子頁面向父頁面傳值:
parent.objjson = obj.data  //核心重點

可以直接給父頁面賦值,layui.use裡獲取

html
<table class="layui-hide" id="test" lay-filter="test"></table>
父頁面layui.use(在iframe彈框之後的程式碼裡)
//全域性變數
var objjson={}
layui.use('form', function (form) {
    form.render()
    function getobjjson() {
        console.log("json執行")
        console.log(objjson)
    }
    window.getobjjson = function () { //將方法新增到window,否則報錯
        getobjjson()
    }
});
子頁面給父頁面的變數賦值,呼叫父頁面方法
//單選框被選擇的時候呼叫
table.on('radio(test)', function (obj) {
   console.log(obj.checked); //當前是否選中狀態
   console.log(obj.data); //選中行的相關資料,json格式
   parent.objjson = obj.data  //給父頁面的變數賦值,核心重點
   parent.getobjjson()  //呼叫父頁面的方法
   parent.layer.closeAll()  //關閉父頁面所有彈框
   
});