JS~重写alter与confirm,让它们变成fancybox风格
2014-03-07 11:37
141 查看
插件与系统命令
对于很多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("删除成功") }); }
最后运行效果如图
相关文章推荐
- jquery mobile alter、confirm重写,使用popup
- js 重写 bootstrap 样式 alert/confirm 消息窗口
- 重写jquery.confirm.js 摆脱传统alert confirm 插件供下载(二)
- 重写jquery.confirm.js 摆脱传统alert confirm 插件供下载(一)
- 重写jquery.confirm.js 摆脱传统alert confirm 插件供下载(三)
- jquery mobile alter、confirm重写,使用popup
- js 重写 bootstrap 样式 alert/confirm 消息窗口
- 重写jquery.confirm.js 摆脱传统alert confirm 插件供下载(四)
- JS重写提示框(confirm)
- cefsharp重写默认js弹窗(alert/confirm/prompt)
- js和css重写Confirm提示窗口,支持服务器控件调用。
- js 重写 bootstrap 样式 alert/confirm 消息窗口 - cnhxz
- JS对象在用于搜索和分析数据上表现出十分便捷的作用,它们甚至连排列数字也不费吹灰之力
- JS自定义风格幻灯片
- js 0变成undefined
- JS 中改变confirm默认按钮提示“确定""取消"
- js 编程风格指南:开发需要注意的地方
- 修改window.confirm提示变成(是、否)
- .NET后台confirm对话框以及JS调用后台相关方法
- js重写的美化版select控件