使用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 相关文章推荐
jquery 跨域访问问题解决方法(笔记)
Jun 08 Javascript
JS常见问题整理(持续更新)
Aug 06 Javascript
一个判断抢购时间是否到达的简单的js函数
Jun 23 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
Sep 19 Javascript
JavaScript中join()方法的使用简介
Jun 09 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 Javascript
如何使用angularJs
May 08 Javascript
vue.js或js实现中文A-Z排序的方法
Mar 08 Javascript
vue使用监听实现全选反选功能
Jul 06 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
Jan 23 Javascript
JS如何在数组指定位置插入元素
Mar 10 Javascript
Javascript文本框脚本实现方法解析
Oct 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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
用PHP调用数据库的存贮过程!
2006/10/09 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
Zend Framework教程之Bootstrap类用法概述
2016/03/14 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
jquery 实现的全选和反选
2009/04/15 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
跟老齐学Python之做一个小游戏
2014/09/28 Python
python3爬虫之设计签名小程序
2018/06/19 Python
Python常见的pandas用法demo示例
2019/03/16 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
python的faker库用法
2019/11/28 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
Python colormap库的安装和使用详情
2020/10/06 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
幼师自我鉴定范文
2013/10/01 职场文书
学生爱国演讲稿
2014/01/14 职场文书
陈欧的广告词
2014/03/18 职场文书
推荐信格式范文
2014/05/09 职场文书
高中课程设置方案
2014/05/28 职场文书
党员创先争优心得体会
2014/09/11 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
Java实现二分搜索树的示例代码
2022/03/17 Java/Android