多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 使用parent.layer问题 ## 11.17.使用parent.layer问题 如果用的是parent.layui.admin.open打开的弹窗,弹窗success里面的一些操作也应该相应的加parent: ~~~ function showEditModel(mData) { parent.layui.admin.open({ type: 1, title: (mData ? '修改' : '添加') + '用户', content: $('#userEditDialog').html(), success: function (layero, dIndex) { // 回显表单数据 parent.layui.formX.val('userEditForm', mData); // 表单提交事件 parent.layui.form.on('submit(userEditSubmit)', function (data) { return false; }); // 禁止弹窗出现滚动条 parent.layui.jquery(layero).children('.layui-layer-content').css('overflow', 'visible'); } }); } ~~~ 需要注意的是`parent.layui.form.val`不支持跨iframe的数据,可以使用`formX`模块,`$`应该用`parent.layui.jquery`。 **如果你喜欢跨iframe操作,你需要了解window、parent、top:** ~~~ <iframe id="child" src="child.html"></iframe> <script> layui.use(['jquery'], function() { var $ = layui.jquery; window.aaa = 'aaa'; // 定义变量到window下 // 定义方法到window下 window.bbb = function(str) { alert(str); }; // 访问iframe的变量 var childWin = $('#child')[0].contentWindow; console.log(childWin.ccc); childWin.location.reload(); // 刷新iframe页面 }); </script> ~~~ child.html: ~~~ <script> layui.use(['jquery'], function() { window.ccc = 'ccc'; // 定义变量到window下 parent.aaa = '__a'; // 修改parent的变量 parent.bbb('bbb'); // 调用parent的方法 }); </script> ~~~