使用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 相关文章推荐
Javascript 作用域使用说明
Aug 13 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
Apr 01 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
Jan 16 Javascript
js判断iframe内的网页是否滚动到底部触发事件
Mar 18 Javascript
网页右侧悬浮滚动在线qq客服代码示例
Apr 28 Javascript
javascript实现的HashMap类代码
Jun 27 Javascript
使用script的src实现跨域和类似ajax效果
Nov 10 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
AngularGauge 属性解析详解
Sep 06 Javascript
简单实现Vue的observer和watcher
Dec 21 Javascript
Angular.JS中指令ng-if的注意事项小结
Jun 21 Javascript
JavaScript实现滑动导航栏效果
Aug 30 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
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
JavaScript 空位补零实现代码
2010/02/26 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
Python中的延迟绑定原理详解
2019/10/11 Python
python圣诞树编写实例详解
2020/02/13 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
安全施工责任书
2014/08/25 职场文书
三问三解心得体会
2014/09/05 职场文书
自查自纠整改报告
2014/11/06 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
公司周年庆典致辞
2015/07/30 职场文书
安全教育培训心得体会
2016/01/15 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
Python Django获取URL中的数据详解
2021/11/01 Python
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android