使用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 相关文章推荐
验证码按回车不变解决方法
Mar 29 Javascript
jQuery页面加载初始化常用的三种方法
Jun 04 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
Sep 28 Javascript
js实现多选项切换导航菜单的方法
Feb 06 Javascript
卸载安装Node.js与npm过程详解
Aug 15 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
Sep 08 Javascript
ionic中列表项增加和删除的实现方法
Jan 22 Javascript
Node.js实现发送邮件功能
Nov 06 Javascript
详解angular脏检查原理及伪代码实现
Jun 08 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
Jul 20 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
Sep 12 Javascript
微信小程序顶部导航栏滑动tab效果
Jan 28 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表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
JS实现倒计时图文效果
2018/11/17 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
js实现随机数小游戏
2019/06/28 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
Python中字典的基本知识初步介绍
2015/05/21 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python新手学习可变和不可变对象
2020/06/11 Python
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
学校文明单位申报材料
2014/05/06 职场文书
2014年家长学校工作总结
2014/11/20 职场文书