使用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操作input type=radio的实现代码
Jun 14 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
Dec 01 Javascript
使用jquery+CSS实现控制打印样式
Dec 31 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
Sep 20 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
Dec 12 Javascript
javascript 秒表计时器实现代码
Mar 09 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
Sep 18 Javascript
React和Vue中监听变量变化的方法
Nov 14 Javascript
微信小程序Flex布局用法深入浅出分析
Apr 25 Javascript
layui的面包屑或者表单不显示的解决方法
Sep 05 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 php_openssl.dll的作用
2013/07/01 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
纯php生成随机密码
2015/10/30 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
python调用windows api锁定计算机示例
2014/04/17 Python
python爬虫基本知识
2018/03/05 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
艺术专业大学生自我评价
2013/09/22 职场文书
财会自我鉴定范文
2013/12/27 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
化工工艺设计求职信
2014/06/25 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
学校教师安全责任书
2014/07/23 职场文书
财务管理专业自荐书
2014/09/02 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
Python List remove()实例用法详解
2021/08/02 Python
讨论nginx location 顺序问题
2022/05/30 Servers
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python