使用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 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
Aug 12 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
javascript实现简单查找与替换的方法
Jul 22 Javascript
详解Javascript中DOM的范围
Feb 13 Javascript
微信小程序的分类页面制作
Jun 27 Javascript
微信小程序实现轮播图效果
Sep 07 Javascript
JS+CSS实现网页加载中的动画效果
Oct 27 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
Dec 06 jQuery
javascript匿名函数中的'return function()'作用
Oct 15 Javascript
详解写好JS条件语句的5条守则
Feb 28 Javascript
Javascript执行上下文顺序的深入讲解
Nov 04 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
ftp类(example.php)
2006/10/09 PHP
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
Python中的并发编程实例
2014/07/07 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
python使用Tesseract库识别验证
2018/03/21 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
车间组长岗位职责
2013/12/20 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL