使用jQuery实现更改默认alert框体


Posted in Javascript onApril 13, 2015

更改框体主要用到的是更改系统的内置控件winpop下面是winpop具体代码

(function(window, jQuery, undefined) {
 
   var HTMLS = {
     ovl: '<div class="J_WinpopMask winpop-mask" id="J_WinpopMask"></div>' + '<div class="J_WinpopBox winpop-box" id="J_WinpopBox">' + '<div class="J_WinpopMain winpop-main"></div>' + '<div class="J_WinpopBtns winpop-btns"></div>' + '</div>',
     alert: '<input type="button" class="J_AltBtn pop-btn alert-button" value="确定">',
     confirm: '<input type="button" class="J_CfmFalse pop-btn confirm-false" value="取消">' + '<input type="button" class="J_CfmTrue pop-btn confirm-true" value="确定">'
   }
 
   function Winpop() {
     var config = {};
     this.get = function(n) {
       return config[n];
     }
 
     this.set = function(n, v) {
       config[n] = v;
     }
     this.init();
   }
 
   Winpop.prototype = {
     init: function() {
       this.createDom();
       this.bindEvent();
     },
     createDom: function() {
       var body = jQuery("body"),
         ovl = jQuery("#J_WinpopBox");
 
       if (ovl.length === 0) {
         body.append(HTMLS.ovl);
       }
 
       this.set("ovl", jQuery("#J_WinpopBox"));
       this.set("mask", jQuery("#J_WinpopMask"));
     },
     bindEvent: function() {
       var _this = this,
         ovl = _this.get("ovl"),
         mask = _this.get("mask");
       ovl.on("click", ".J_AltBtn", function(e) {
         _this.hide();
       });
       ovl.on("click", ".J_CfmTrue", function(e) {
         var cb = _this.get("confirmBack");
         _this.hide();
         cb && cb(true);
       });
       ovl.on("click", ".J_CfmFalse", function(e) {
         var cb = _this.get("confirmBack");
         _this.hide();
         cb && cb(false);
       });
       mask.on("click", function(e) {
         _this.hide();
       });
       jQuery(document).on("keyup", function(e) {
         var kc = e.keyCode,
           cb = _this.get("confirmBack");;
         if (kc === 27) {
           _this.hide();
         } else if (kc === 13) {
           _this.hide();
           if (_this.get("type") === "confirm") {
             cb && cb(true);
           }
         }
       });
     },
     alert: function(str, btnstr) {
       var str = typeof str === 'string' ? str : str.toString(),
         ovl = this.get("ovl");
       this.set("type", "alert");
       ovl.find(".J_WinpopMain").html(str);
       if (typeof btnstr == "undefined") {
         ovl.find(".J_WinpopBtns").html(HTMLS.alert);
       } else {
         ovl.find(".J_WinpopBtns").html(btnstr);
       }
       this.show();
     },
     confirm: function(str, callback) {
       var str = typeof str === 'string' ? str : str.toString(),
         ovl = this.get("ovl");
       this.set("type", "confirm");
       ovl.find(".J_WinpopMain").html(str);
       ovl.find(".J_WinpopBtns").html(HTMLS.confirm);
       this.set("confirmBack", (callback || function() {}));
       this.show();
     },
     show: function() {
       this.get("ovl").show();
       this.get("mask").show();
     },
     hide: function() {
       var ovl = this.get("ovl");
       ovl.find(".J_WinpopMain").html("");
       ovl.find(".J_WinpopBtns").html("");
       ovl.hide();
       this.get("mask").hide();
     },
     destory: function() {
       this.get("ovl").remove();
       this.get("mask").remove();
       delete window.alert;
       delete window.confirm;
     }
   };
 
   var obj = new Winpop();
   window.alert = function(str) {
     obj.alert.call(obj, str);
   };
   window.confirm = function(str, cb) {
     obj.confirm.call(obj, str, cb);
   };
 })(window, jQuery);

然后实例化对象

var obj = new Winpop(); // 创建一个Winpop的实例对象
 // 覆盖alert控件
 window.alert = function(str) {
   obj.alert.call(obj, str);
 };
 // 覆盖confirm控件
 window.confirm = function(str, cb) {
   obj.confirm.call(obj, str, cb);
 };

以下JS不可少

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="winpop.js"></script>

以上所述就是本文的全部内容了,希望对大家能够有所帮助。

Javascript 相关文章推荐
彪哥1.1(智能表格)提供下载
Sep 07 Javascript
js 删除数组的几种方法小结
Feb 21 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
举例讲解Node.js中的Writable对象
Jul 29 Javascript
javascript模拟C#格式化字符串
Aug 26 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
Aug 31 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
Feb 19 Javascript
angularJS之$http:与服务器交互示例
Mar 17 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
JavaScript标准对象_动力节点Java学院整理
Jun 27 Javascript
如何获取TypeScript的声明文件.d.ts
May 01 Javascript
javascript中undefined的本质解析
Jul 31 Javascript
javascript异步处理工作机制详解
Apr 13 #Javascript
JavaScript中DOM详解
Apr 13 #Javascript
js 获取元素在页面上的偏移量的方法汇总
Apr 13 #Javascript
javascript中scrollTop详解
Apr 13 #Javascript
jQuery实现的在线答题功能
Apr 12 #Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 #Javascript
jQuery插件Skippr实现焦点图幻灯片特效
Apr 12 #Javascript
You might like
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
深入浅析python定时杀进程
2016/06/06 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
Python3处理HTTP请求的实例
2018/05/10 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
Python八皇后问题解答过程详解
2019/07/29 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
佳能英国官方网站:Canon UK
2017/08/08 全球购物
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
销售心得体会
2014/01/02 职场文书
经典团队口号
2014/06/06 职场文书
给校长的建议书范文
2015/09/14 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers