原生JS 重写 alert 去除弹框URL 自定义样式


问题描述:

使用原生js alert 的时候弹框标题会出现网址如下图:

这是alert 自带的没办法修改所以只能修改alert 源码

解决方案:

翻了很多文章都大同小异 如果不修改源代码的话也可以使用插件,不过都用原生写了 还要啥自行车啊,就修改源码吧。

 window.alert = function (msg, callback) {
      var div = document.createElement("div");
      div.innerHTML =
        '<style type="text/css">' +
        ".nbaMask { position: fixed; z-index: 1000; top: 0; right: 0; left: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); }                                                                                                                                                                       " +
        ".nbaMaskTransparent { position: fixed; z-index: 1000; top: 0; right: 0; left: 0; bottom: 0; }                                                                                                                                                                                            " +
        ".nbaDialog { position: fixed; z-index: 5000; width: 80%; max-width: 300px; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); background-color: #fff; text-align: center; border-radius: 8px; overflow: hidden; opacity: 1; color: white; }" +
        ".nbaDialog .nbaDialogHd { padding: .2rem .27rem .08rem .27rem; }                                                                                                                                                                                                                         " +
        ".nbaDialog .nbaDialogHd .nbaDialogTitle { font-size: 17px; font-weight: 400; }                                                                                                                                                                                                           " +
        ".nbaDialog .nbaDialogBd { padding: 0 .27rem; font-size: 15px; line-height: 2.3; word-wrap: break-word; word-break: break-all; color: #000000; }                                                                                                                                          " +
        ".nbaDialog .nbaDialogFt { position: relative; line-height: 45px; font-size: 17px; display: -webkit-box; display: -webkit-flex; display: flex; }                                                                                                                                          " +
        '.nbaDialog .nbaDialogFt:after { content: " "; position: absolute; left: 0; top: 0; right: 0; height: 1px; border-top: 1px solid #e6e6e6; color: #e6e6e6; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scaleY(0.5); transform: scaleY(0.5); }               ' +
        ".nbaDialog .nbaDialogBtn { display: block; -webkit-box-flex: 1; -webkit-flex: 1; flex: 1; color: #09BB07; text-decoration: none; -webkit-tap-highlight-color: transparent; position: relative; margin-bottom: 0; }                                                                       " +
        '.nbaDialog .nbaDialogBtn:after { content: " "; position: absolute; left: 0; top: 0; width: 1px; bottom: 0; border-left: 1px solid #e6e6e6; color: #e6e6e6; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scaleX(0.5); transform: scaleX(0.5); }             ' +
        ".nbaDialog a { text-decoration: none; -webkit-tap-highlight-color: transparent; }" +
        "</style>" +
        '<div id="dialogs2" style="display: none">' +
        '<div class="nbaMask"></div>' +
        '<div class="nbaDialog">' +
        '	<div class="nbaDialogHd">' +
        '		<strong class="nbaDialogTitle"></strong>' +
        "	</div>" +
        '	<div class="nbaDialogBd" id="dialog_msg2">弹窗内容,告知当前状态、信息和解决方法,描述文字尽量控制在三行内</div>' +
        '	<div class="nbaDialogHd">' +
        '		<strong class="nbaDialogTitle"></strong>' +
        "	</div>" +
        '	<div class="nbaDialogFt">' +
        '		<a href="javascript:;" class="nbaDialogBtn nbaDialogBtnPrimary" id="dialog_ok2">确定</a>' +
        "	</div></div></div>";
      document.body.appendChild(div);

      var dialogs2 = document.getElementById("dialogs2");
      dialogs2.style.display = "block";

      var dialog_msg2 = document.getElementById("dialog_msg2");
      dialog_msg2.innerHTML = msg;

      // var dialog_cancel = document.getElementById("dialog_cancel");
      // dialog_cancel.onclick = function() {
      // dialogs2.style.display = 'none';
      // };
      var dialog_ok2 = document.getElementById("dialog_ok2");
      dialog_ok2.onclick = function () {
        dialogs2.style.display = "none";
        callback();
      };
    };

这两行代码是用来修改 所提示数据 和确定的样式的我标红的是用来修改高度的

在这里插入图片描述

改完之后是这样的,如果有什么异议欢迎讨论

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值