本文共 1586 字,大约阅读时间需要 5 分钟。
对于很多JS弹框插件来说,都提供了alter,confirm等功能,如fancybox,Boxy等插件,今天来介绍一下如何将系统的alter和confirm替换成指定插件的alter和confirm,使用替换的方式的好处就是不用修改之前的代码,这在面向对象里,
叫做“对修改关闭,对扩展开放”,也称为OCP原则,即开闭原则。
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("删除成功") }); }
window.alert = function (msg) { Boxy.alert(msg);}window.alert = function (msg,callback) { Boxy.confirm(msg,callback);}
function alerttest() { alert("ok"); } function confirmtest() { confirm("are you sure!", function () { alert("删除成功") }); }
本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。