使用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 相关文章推荐
B/S开发中常用javaScript技术与代码
Mar 09 Javascript
一段利用WSH修改和查看IP配置的代码
May 11 Javascript
javascript调试说明
Jun 07 Javascript
解析javascript 浏览器关闭事件
Jul 08 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
Jan 03 Javascript
JavaScript判断微信浏览器实例代码
Jun 13 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
Nov 11 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
Apr 27 Javascript
深入理解vue-loader如何使用
Jun 06 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
Vuejs+vue-router打包+Nginx配置的实例
Sep 20 Javascript
Vue axios 将传递的json数据转为form data的例子
Oct 29 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
天津市收音机工业发展史
2021/03/04 无线电
PHP中文汉字验证码
2007/04/08 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
Python 错误和异常小结
2013/10/09 Python
Python简单获取自身外网IP的方法
2016/09/18 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
python对一个数向上取整的实例方法
2020/06/18 Python
设计模式的基本要素是什么
2014/04/21 面试题
党支部2014年度工作总结
2014/12/04 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python