只要引用这个js就会页面加载完毕自动弹出提示框

 

IE浏览器不支持ES6语法, 此代码为翻译并修改过的,使用的bable网站翻译

 

(function (win) {
    // 生成遮罩和弹出层,返回弹出层DOM对象
    var createMsgBox = function createMsgBox() {
        // 添加遮罩层
        var shadow = document.createElement('div');
        shadow.classList.add('msgbox-shadow');
        document.body.appendChild(shadow);
        // 生成弹出框
        var msgDom = document.createElement('div');
        msgDom.classList.add('msgbox-modal');
        return msgDom;
    };
    // 显示弹出层
    var showMsgBox = function showMsgBox(msgboxDom) {
        document.body.style.overflow = 'hidden';
        document.body.appendChild(msgboxDom);
    };
    // 弹出框类
    var msgBox = {};
    // 删除(关闭)遮罩和弹出层
    msgBox.close = function () {
        var body = document.body;
        var modal = body.querySelectorAll('.msgbox-modal');
        var shadow = body.querySelectorAll('.msgbox-shadow');
        if (shadow != null) {
            for (var i = shadow.length - 1; i >= 0; i--) {
                shadow[i].parentNode.removeChild(shadow[i]);
            }
        }

        if (modal != null) {
            for (var i = modal.length - 1; i >= 0; i--) {
                modal[i].parentNode.removeChild(modal[i]);
            }
        }
        // 去掉body滚动条样式
        document.body.style.overflow = null;
    };
    // alert 弹出框
    // {msg:要提示的信息,字符串,[onClosed:关闭后执行方法],[style:primary,danger,success],[position:位置(top bottom)]}
    msgBox.alert = function (msg, onClosed, style, position) {
        // 删除可能存在的弹出框
        msgBox.close();
        // 生成新框并且加入到body直属
        var msgDom = createMsgBox();
        msgDom.innerHTML = "<div class=\"msgbox".concat(style || '', "msgbox-").concat(position || 'center', "\">").concat(msg || '', "\n  <span class=\"msgbox-btn msgbox-ok\">Ok</span></div>");
        // 绑定事件
        msgDom.querySelector('.msgbox-ok').onclick = function () {
            // 删除弹出框
            msgBox.close();
            // 执行关闭事件
            if (typeof onClosed == 'function')
                onClosed();
        };
        // 显示
        showMsgBox(msgDom);
    };

    // confirm 弹出框
    // { msg: 要提示的信息, 字符串, [callback(res)]:回调函数], [style: primary, danger, success], [position: 位置(top bottom)] }
    msgBox.confirm = function (msg, callback, style, position) {
        // 删除可能存在的弹出框
        msgBox.close();
        // 生成新框并且加入到body直属
        var msgDom = createMsgBox();
        msgDom.innerHTML = "<div class=\"msgbox".concat(style || '', "msgbox-").concat(position || 'center', "\">").concat(msg || '', "\n  <span class=\"msgbox-btn msgbox-ok\">Ok</span><span class=\"msgbox-btn msgbox-cancel\">Cancel</span></div>")
        // 绑定事件
        msgDom.querySelector('.msgbox-ok').onclick = function () {
            // 删除弹出框
            msgBox.close();
            // 结果传回1表示点击OK
            if (typeof callback == 'function')
                callback(1);
        };
        msgDom.querySelector('.msgbox-cancel').onclick = function () {
            // 删除弹出框
            msgBox.close();
            // 结果传回0表示点击取消
            if (typeof callback == 'function')
                callback(0);
        };
        // 显示
        showMsgBox(msgDom);
    };

    // prompt 弹出框
    // { msg: 要提示的信息, 字符串, [callback(res)]:回调函数], [style: primary, danger, success], [position: 位置(top bottom)] }
    msgBox.prompt = function (msg, callback, style, position) {
        // 删除可能存在的弹出框
        msgBox.close();
        // 生成新框并且加入到body直属
        var msgDom = createMsgBox();
        msgDom.innerHTML = "<div class=\"msgbox".concat(style || '', " msgbox-").concat(position || 'center', "\">").concat(msg || '', "<input class=\"msgbox-input\" type=\"text\"/>\n" +
            "<span class=\"msgbox-btn msgbox-ok\">Ok</span><span class=\"msgbox-btn msgbox-cancel\">Cancel</span></div>");
        // 绑定事件
        msgDom.querySelector('.msgbox-ok').onclick = function () {
            // 删除弹出框
            msgBox.close();
            // 输入传回
            if (typeof callback == 'function') {
                var _msg = msgDom.querySelector('.msgbox-input').value;
                callback(_msg);
            }
        };
        msgDom.querySelector('.msgbox-cancel').onclick = function () {
            // 删除弹出框
            msgBox.close();
            // 输入传回空字符串
            if (typeof callback == 'function')
                callback('');
        };
        // 显示
        showMsgBox(msgDom);
    };

    // 弹出自定义HTML片段
    // {msgboxhtml:自定义弹出层html片段,[onBefore:显示前执行],[onshow:显示后执行]}
    msgBox.show = function (msgboxhtml, onBefore, onShow) {
        // 删除可能存在的弹出框
        msgBox.close();
        // 生成新框并且加入到body直属
        var msgDom = createMsgBox();
        msgDom.innerHTML = msgboxhtml;
        //
        if (typeof onBefore == 'function')
            onBefore();
        // 显示
        showMsgBox(msgDom);
        //
        if (typeof onShow == 'function')
            onBefore();
    };

    // 引用名称可在此修改
    win.msgbox = msgBox;
})(window);

window.onload= function ShowCustom() {

    var innerhtml = "<div style=\"width:35%; margin:0 auto; height:350px;border:1px solid #999;position:absolute; top:30%; left:30%; background: #FFFFFF\">" +
        "<div style=\"background: #FFFFFF; width: 100 %; height:45px; font-size: 20px; line-height:40px; border: 1px solid #999; text-align:center;\">提示</div>" +
        "<div style=\"text-indent:40px;height:230px;font-size:16px;padding:20px;line-height:30px;\">" +
        "系统更新期间将会出现不可用情况,更新完毕后恢复。" +
        "</div>" +
        "<div style=\"background:#3C8DBC;width:60px;margin: 0 auto;height:35px;line-height:35px;text-align:center;color:#FFFFFF; margin-top:15px; font-size: 16px;\" onclick=\"msgbox.close()\">确定</div>" +
        " </div>";
    msgbox.show(innerhtml);
};

 

/*用于去掉BODY滚动条*/

.overflowhide {
    overflow: hidden;
}


/*遮罩*/

.msgbox-shadow {
    position: fixed;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    opacity: .4;
    background-color: #000;
    z-index: 10000;
}


/*父层*/

.msgbox-modal {
    display: flex;
    justify-content: center;
    position: fixed;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    overflow-x: hidden;
    overflow-y: auto;
    z-index: 10001;
}


/*弹出框*/

.msgbox {
    position: relative;
    width: 450px;
    height: 200px;
    padding: 20px;
    background-color: #FFFFFF;
    box-sizing: border-box;
    box-shadow: 2px 2px 16px #000;
}

.msgbox-center {
    align-self: center;
}

.msgbox-top {
    align-self: flex-start;
}

.msgbox-bottom {
    align-self: flex-end;
}


/*弹出框按钮*/

.msgbox-btn {
    position: absolute;
    bottom: 10px;
    width: 76px;
    text-align: center;
    box-sizing: border-box;
    border: 1px solid #999;
    border-radius: 5px;
    padding: 5px 10px;
    background-color: #eee;
    user-select: none;
    font-size: 14px;
    color: #333;
    outline: 0;
    cursor: pointer;
}

.msgbox-ok {
    right: 10px;
}

.msgbox-cancel {
    right: 96px;
}

.msgbox-btn:hover {
    background-color: #6600FF;
    color: #ffffff;
}


/*prompt框的input*/

.msgbox-input {
    display: block;
    border-radius: 4px;
    box-sizing: border-box;
    padding: 4px 8px;
    margin: 5px auto;
    width: 100%;
    border: 1px solid #999999;
    color: #333333;
    background-color: #ffffff;
    outline: 0;
}


/*PC屏*/

@media only screen and (min-width: 768px) {
    .msgbox {
        width: 360px;
    }
}

 

posted @ 2019-08-22 17:24  这个问题解决不了  阅读(170)  评论(0编辑  收藏  举报