js和css重写Alert和Confirm提示窗口,支持服务器控件调用。
js自带的Alert和Confirm窗口样貌丑陋,且每个浏览器的实现方式都不一样(弹出位置等),而且还不支持自己输入样式和自定义返回函数等。
在一次.NET的web开发过程中,为用户提供一个删除功能时,在用户删除前弹出提示框,这做起来方法很多。
1. 可以前台写个按钮(input,button)或者连接(a)标签,又或者随便一个标签,然后加个click事件,在click事件中用ajax来调用服务器代码,进行更新数据。如果你要改的代码或者新写的代码是这样的,那恭喜你,你造福了你自己和你的后来者。
2. 使用.net自带的服务器控件来做。如果你是在改代码,而且时间不允许你重新构建整个表格区域,又或者是你不想改前辈们的劳动成果,那么你很有可能就直接添加了一个服务器控件,然后添加一个onClientClick事件,直接return confirm(“xxxx”)来简单实现一个提示窗口。
但是作为一个很有责任感的开发人员,作为一个追求完美的开发者,在这前端越来越让人眼花缭乱的前端开发世界里,仍旧使用原生的Confirm实在是让人心里发麻,很不爽。所以花了点时间研究如何自定义新的弹窗来做替换。多说无益,真枪实弹才是真,直接上代码。
前台HTML文件代码和调用方法:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>模拟alert和confirm提示框</title>
<script src="../js/jquery-1.12.4.js"></script>
<script src="../js/confirm.js"></script>
</head>
<body>
<input id="add" type="button" value="添加" onclick="AlertDemo()"/>
<input id="update" type="button" value="修改" onclick="ConfirmDemo()" />
<script>
//非服务器控件调用Alert
function AlertDemo(){
PlusAlert("模拟Alert弹窗", "模拟Alert成功!");
}
//非服务器控件调用Confirm
function ConfirmDemo(){
PlusConfirm("模拟Confirm弹窗", "模拟Confirm成功!", 340, function (r) {
if (r) {
PlusAlert("模拟Alert弹窗", "你单击了确定");
} else {
PlusAlert("模拟Alert弹窗",