打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JS~重写alter与confirm,让它们变成fancybox风格

插件与系统命令


对于很多JS弹框插件来说,都提供了alter,confirm等功能,如fancybox,Boxy等插件,今天来介绍一下如何将系统的alter和confirm替换成指定插件的alter和confirm,使用替换的方式的好处就是不用修改之前的代码,这在面向对象里,


叫做“对修改关闭,对扩展开放”,也称为OCP原则,即开闭原则。


fancybox替换系统命令,它需要有一个HTML容器来展现弹框



<script id="MessageBox_delete" type="text/html">    <!--试题删除确认弹出框 start-->    <div class="r_warnBox" style="width: 276px;">        <div class="r_warnBox_tit">            <h3><strong>提示</strong></h3>        </div>        <div class="r_roomBoxContDel">            <p class="alert">您确定删除作业吗?</p>            <p class="confirm"><a class="sure" href="javascript:;">确定</a><a class="cancel" href="javascript:;" onclick="$.fancybox.close();">取消</a></p>        </div>        <a class="r_warnBox_close" href="javascript:;" onclick="$.fancybox.close();"></a>    </div>    <!--试题删除确认弹出框 end--></script><!--弹出框1 start--><script id="MessageBox_message" type="text/html">    <div class='r_warnBox' style='width: 433px; padding-right: 30px;'>        <div class='r_warnBox_tit'>            <h3><strong>提示            </strong></h3>        </div>        <div id='alert_message' class='r_roomBoxCont'>            <p class='alert'>[Content]</p>        </div>        <a class='r_warnBox_close' href='javascript:;' onclick="$.fancybox.close()"></a>    </div></script><!--弹出框1 end-->


下面是复写语句



 window.alert = function (msg) {        var reg = new RegExp("\\[([^\\[\\]]*?)\\]", 'igm'); //i g m是指分别用于指定区分大小写的匹配、全局匹配和多行匹配。        var html = document.getElementById("MessageBox_message").innerHTML;        var result = html.replace(reg, function (node, key) { return { 'Content': msg }[key]; });        $.fancybox(result, {            'padding': 0,            'scrolling': 'visible',            'closeBtn': false,            'modal': false    });    }    window.confirm = function (msg, callBack) {        $.fancybox($("#MessageBox_delete").html(), {            'padding': 0,            'scrolling': 'visible',            'closeBtn': false,            'modal': false,            afterShow: function () {                $('p.confirm a.sure').on('click', function () {                    callBack();                });            }        });    }


下面是调用语句



function alerttest() {        alert("ok");    }    function confirmtest() {        confirm("are you sure!", function () { alert("删除成功") });    }


Boxy替换系统命令,使用相对简单,它已经为我们创建的弹框的DIV



window.alert = function (msg) {  Boxy.alert(msg);}window.alert = function (msg,callback) {  Boxy.confirm(msg,callback);}


调用和fancybox也是一样的



  function alerttest() {        alert("ok");    }  function confirmtest() {        confirm("are you sure!", function () { alert("删除成功") });    }


最后运行效果如图



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ES6实现小案例--自定义弹框
JQUERY 多行动画改变高度
zblog的修改教程 (新手必读)
Ext消息提示框,显示几秒后自动消失
Vue.js
多种展开方式的jQuery弹出插件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服