使用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 相关文章推荐
拖动table标题实现改变td的大小(css+js代码)
Apr 16 Javascript
js显示当前日期时间和星期几
Oct 22 Javascript
详解JavaScript正则表达式之RegExp对象
Dec 13 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
Feb 18 Javascript
jQuery实现字符串全部替换的方法【推荐】
Mar 09 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
Mar 10 Javascript
Bootstrap表单制作代码
Mar 17 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
Apr 17 Javascript
vue省市区三联动下拉选择组件的实现
Apr 28 Javascript
浅谈Vue 函数式组件的使用技巧
Jun 16 Javascript
基于小程序请求接口wx.request封装的类axios请求
Jul 02 Javascript
关于vue 项目中浏览器跨域的配置问题
Nov 10 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过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
python快速排序代码实例
2013/11/21 Python
python获取远程图片大小和尺寸的方法
2015/03/26 Python
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
python实现单向链表详解
2018/02/08 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
自荐信格式技巧有哪些呢
2013/11/19 职场文书
农村婚礼证婚词
2014/01/08 职场文书
付款委托书范本
2014/04/04 职场文书
项目经理任命书内容
2014/06/06 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
世界文化遗产导游词
2019/08/07 职场文书
Python实现自动玩连连看的脚本分享
2022/04/04 Python