layui嵌套弹出模态框的Blocked a frame with origin null from的解决方案

在layui开发的过程中,需要在弹出层里再次调用弹出层。

  1. layer.open,父页面封装弹出函数;
  2. top.layer.open,子页面封装弹出函数;

top.layer.open(),无法使用本地"files://"协议打开的,需要http协议。

否则提示:

Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.

函数封装

/*弹出窗口*/
function previewPages(url, title) {
    layer.open({
        type: 2,
        shade: 0.6,
        area: ['600px', '390px'],//弹出模态框尺寸;
        shadeClose: true,
        scrollbar: false,
        maxmin: true,
        title: title, //显示标题
        content: url, //捕获的元素
        cancel: function () {
            //layer.msg('捕获就是从页面已经存在的元素上,包裹layer的结构', { time: 5000, icon: 6 });
        }
    });
}

//嵌套弹出模态框;
function topPop(url, title) {
    top.layer.open({
        type: 2,
        shade: 0.6,
        area: ['800px', '450px'],//弹出模态框尺寸;
        shadeClose: true,
        scrollbar: false,
        maxmin: true,
        title: title, //显示标题
        content: url, //捕获的元素
        cancel: function () {
            //layer.msg('捕获就是从页面已经存在的元素上,包裹layer的结构', { time: 5000, icon: 6 });
        }
    });
}

//普通窗口;
function winPop(url) {
    window.open(url, '_blank', 'width=' + (window.screen.availWidth - 10) + ',height=' + (window.screen.availHeight - 30) + ',top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')
}

Done!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漏刻有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值