插件与系统命令

对于很多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:;" οnclick="$.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("删除成功") });}

最后运行效果如图

转载于:https://www.cnblogs.com/lori/p/3586075.html

JS~重写alter与confirm,让它们变成fancybox风格相关推荐

  1. JS重写提示框(confirm)

    <script language="javascript"> /** * 功能:显示提示窗口 * 作者:申楠 qq:38371354 email:amushen1@ya ...

  2. WKWebView Safari调试、JS互调、加载进度条、JS中alert、confirm、prompt

    主要内容 Safari调试 swift/OC与JS互调 增加加载进度条 支持JS中alert.confirm.prompt Safari调试 设置 -> safari --> 高级,开启J ...

  3. html怎么在alert中加标题,js重写alert事件(避免alert弹框标题出现网址)

    js代码: window.alert = function(msg, callback) { var div = document.createElement("div"); di ...

  4. php confirm函数,JS中确认框confirm()的使用总结

    JS中确认框confirm()的使用总结 1.confirm()函数中的参数是确认框的提示语. 2.此函数返回值是布尔型的,点击确定,返回值为true,点击取消返回值为false. ex1:删除单条信 ...

  5. cefsharp重写默认js弹窗(alert/confirm/prompt)

    1.设置js弹窗控制器 webView.JsDialogHandler = this;  //js弹窗控制 this表示本类对象,所以本类要实现IJsDialogHandler接口 2.实现IJsDi ...

  6. android拦截js弹窗,C++ 拦截 CEF 的JS 弹窗(Alert, Confirm),改造为C++的对话框

    本周主要进行了oa_web项目的统一对话框(提示框)进行改造.因为我们知道,对于嵌入到客户端的web页面,会使用JS弹出的alert,confirm 对话(提示)框, 不过这个提示框的样式是由浏览器决 ...

  7. js的alert和confirm美化

    转载:http://www.cnblogs.com/kewei/p/4423112.html --前言-- window对象的alert和confirm标准方法在不同浏览器的显示效果不太相同,有个相同 ...

  8. js重写console.log函数

    重写console.log函数 在前端开发中console.log是我们必不可少的调试工具,但是原生的console.log有两点不能很好地满足我们的需求 开发时需要log,但是上线时希望去掉log, ...

  9. javascript 重写alert、confirm、prompt 等提示宽框

    基于浏览器的提示太丑了,易U开发了各种提示主要包括: alert,error,success,notice,confirm,prompt 等方法 demo:http://www.yxsss.com/u ...

最新文章

  1. 甲骨文全球大会•2010•北京议程
  2. 一篇文章带你解析,乐观锁与悲观锁的优缺点
  3. Jupyter notebook的内核是什么?Ipython
  4. win7安装nodejs 高版本不支持 换低版本
  5. 记录一些我关注的人的博客
  6. 【引用】IP地址已经分配给另一个适配器问题的解决方法
  7. Mybatis中的延迟加载的使用方法
  8. MySQL添加唯一约束和联合唯一约束(建表后添加)
  9. Ubuntu server搭建vsftpd小记
  10. 网络安全等级保护通用解决方案参考模板
  11. c语言写按键程序,单片机按键设定软件c语言 单片机C语言按键开关程序
  12. c语言运行全屏,怎么用代码控制C源程序运行时窗口是全屏的?
  13. Excel函数应用(3)--筛选随机数
  14. pikachu漏洞搭建平台
  15. 破解Excel保护密码
  16. PowerMock之MVC测试
  17. 机器视觉定位入门三步走-第一步
  18. java基础--内部类学习笔记
  19. 基础教程|如何在数分钟时间内渲染超清精美视频?
  20. 云米冰箱能控制扫地机器人_在云米的大屏冰箱就能操控其他智能家电?一起到京东618了解更多...

热门文章

  1. 【WPF】提高InkAnalyer手写汉字识别的准确率
  2. 我们这旮都是黑社会[转]
  3. MySQL 的日语认证有了,中文呢?
  4. 三国志、英雄无敌玩腻了?没关系,我教你开发个战旗游戏玩玩
  5. (资源整理)带你入门Spark
  6. ORACLE客户端jdbc连接测试,Oracle 客户端JDBC连接测试工具
  7. 多线程对于共享变量访问带来的安全性问题
  8. 用户user空间和内核kernel空间
  9. MyBatis常用配置解析-mapper标签
  10. 开发中为什么使用线程池的原因