学过JavaScript的都知道,alert()、confirm()都是window对象特有的方法,而这两个方法我们平时使用的频率也很高,但是比较扎心的就是他自带的样式太。。。
其实网上也有很多封装好的框架,我常用以下三种,
Layer官网,对应点api文档
sweetAlert弹出层,对应的文档
boxy弹出层
另外,网上也有一种方式,没必要在引入各种js代码,直接使用即可,但推荐使用上面的方式,毕竟是封装过的,而且样式,类型,功能比较多。
js文件
(function($) {
$.alerts = {
alert: function(title, message, callback) {
if( title == null ) title = 'Alert';
$.alerts._show(title, message, null, 'alert', function(result) {
if( callback ) callback(result);
});
},
confirm: function(title, message, callback) {
if( title == null ) title = 'Confirm';
$.alerts._show(title, message, null, 'confirm', function(result) {
if( callback ) callback(result);
});
},
_show: function(title, msg, value, type, callback) {
var _html = "";
_html += '' + title + '';
_html += '' + msg + '';
if (type == "alert") {
_html += '';
}
if (type == "confirm") {
_html += '';
_html += '';
}
_html += '';
//必须先将_html添加到body,再设置Css样式
$("body").append(_html); GenerateCss();
switch( type ) {
case 'alert':
$("#mb_btn_ok").click( function() {
$.alerts._hide();
callback(true);
});
$("#mb_btn_ok").focus().keypress( function(e) {
if( e.keyCode == 13 || e.keyCode == 27 ) $("#mb_btn_ok").trigger('click');
});
break;
case 'confirm':
$("#mb_btn_ok").click( function() {
$.alerts._hide();
if( callback ) callback(true);
});
$("#mb_btn_no").click( function() {
$.alerts._hide();
if( callback ) callback(false);
});
$("#mb_btn_no").focus();
$("#mb_btn_ok, #mb_btn_no").keypress( function(e) {
if( e.keyCode == 13 ) $("#mb_btn_ok").trigger('click');
if( e.keyCode == 27 ) $("#mb_btn_no").trigger('click');
});
break;
}
},
_hide: function() {
$("#mb_box,#mb_con").remove();
}
}
// Shortuct functions
myAlert = function(title, message, callback) {
$.alerts.alert(title, message, callback);
}
myConfirm = function(title, message, callback) {
$.alerts.confirm(title, message, callback);
};
//生成Css
var GenerateCss = function () {
$("#mb_box").css({ width: '100%', height: '100%', zIndex: '99999', position: 'fixed',
filter: 'Alpha(opacity=60)', backgroundColor: 'black', top: '0', left: '0', opacity: '0.6'
});
$("#mb_con").css({ zIndex: '999999', width: '350px',height:'200px', position: 'fixed',
backgroundColor: 'White',
});
$("#mb_tit").css({ display: 'block', fontSize: '14px', color: '#444', padding: '10px 15px',
backgroundColor: '#fff', borderRadius: '15px 15px 0 0',
fontWeight: 'bold'
});
$("#mb_msg").css({ padding: '20px', lineHeight: '40px', textAlign:'center',
fontSize: '18px' ,color:'#4c4c4c'
});
$("#mb_ico").css({ display: 'block', position: 'absolute', right: '10px', top: '9px',
border: '1px solid Gray', width: '18px', height: '18px', textAlign: 'center',
lineHeight: '16px', cursor: 'pointer', borderRadius: '12px', fontFamily: '微软雅黑'
});
$("#mb_btnbox").css({ margin: '15px 0px 10px 0', textAlign: 'center' });
$("#mb_btn_ok,#mb_btn_no").css({ width: '80px', height: '30px', color: 'white', border: 'none', borderRadius:'4px'});
$("#mb_btn_ok").css({ backgroundColor: '#41a259' });
$("#mb_btn_no").css({ backgroundColor: 'gray', marginRight: '40px' });
//右上角关闭按钮hover样式
$("#mb_ico").hover(function () {
$(this).css({ backgroundColor: 'Red', color: 'White' });
}, function () {
$(this).css({ backgroundColor: '#DDD', color: 'black' });
});
var _widht = document.documentElement.clientWidth; //屏幕宽
var _height = document.documentElement.clientHeight; //屏幕高
var boxWidth = $("#mb_con").width();
var boxHeight = $("#mb_con").height();
//让提示框居中
$("#mb_con").css({ top: (_height - boxHeight) / 2 + "px", left: (_widht - boxWidth) / 2 + "px" });
}
})(jQuery);
html文件
<html>
<head>
<meta charset="utf-8"/>
<script src="js/jquery.min.js">script>
<script src="js/alert.js">script>
head>
<body>
<div id="updateDiv" class="display_none">
<input id="alert" type="button" value="Alert" />
<input id="confirm" type="button" value="Confirm" />
div>
body>
html>
<script type="text/javascript">
$("#alert").bind("click", function () {
myAlert('系统提示','登录成功!',function(){
//要回调的方法
window.location.href="http://www.baidu.com"
});
});
$("#confirm").bind("click", function () {
myConfirm('系统确认框','登录之后才能查看!',function(r){
if(r){
//...点确定之后执行的内容
window.location.href="http://www.baidu.com"
}
});
});
alert("消息提示",1,function(r){if(r){
}});
script>