自定义浏览器alert ,抛弃掉死板的蓝框 自定义风格提示框。jquey ui bootstrap 实现自定义 alert confirm prompt ,by大崔

首先看一下自定义提示框的效果图

alert   普通的提示当然可以自定义样式

confrim 确认框 支持callback

 //message 提示的信息 ,callback(true/false)回调函数
 window.shconfirm = function (message, callback) 回调函数参数为 true/false 

prompt  邀请用户输入框

 //message 提示的信息 ,callback(msg)回调函数(用户输入的消息), param:regex 输入的 正则验证,regexmsg 正则验证不通过的提示
 window.shprompt = function (message, callback, regex, regexmsg)这里 message 为提示消息  *    callback 为回调函数 *  回传参数为 用户输入的值(userinputmsg)   regex 和 regexmsg 这2个参数是 选填项 用于验证用户输入,2个参数需要同时出现。不能单独使用。

以下是js的实现,

当前这个是整合了 jquery ui 和 bootstrap 自己封装的一个 alert 提示。

  1 (function () {
  2     var _shconfirm = {};
  3     var _shprompt = {};
  4     //闭包初始化;
  5     $(function () {
  6         $("#dialogalert").dialog({
  7             modal: true,
  8             autoOpen: false,
  9             show: {
 10                 effect: "blind",
 11                 duration: 500
 12             },
 13             hide: {
 14                 effect: "explode",
 15                 duration: 500
 16             },
 17             buttons: {
 18                 确定: function () {
 19                     $(this).dialog("close");
 20                 }
 21             }
 22         });       
 23         $("#dialogconfirm").dialog({
 24             modal: true,
 25             autoOpen: false,
 26             show: {
 27                 effect: "slide",
 28                 duration: 500
 29             },
 30             hide: {
 31                 effect: "drop",
 32                 duration: 500
 33             },
 34             buttons: {
 35                 确定: function () {
 36                     _shconfirm.shconfirmCallBack(true);
 37                     $(this).dialog("close");
 38                 },
 39
 40                 取消: function () {
 41                     _shconfirm.shconfirmCallBack(false);
 42                     $(this).dialog("close");
 43
 44                 }
 45             }
 46         });
 47         $("#dialogprompt").dialog({
 48             modal: true,
 49             autoOpen: false,
 50             show: {
 51                 effect: "blind",
 52                 duration: 500
 53             },
 54             hide: {
 55                 effect: "puff",
 56                 duration: 500
 57             },
 58             buttons: {
 59                 确定: function () {
 60                     if (_shprompt.shpromptObj.regex) {
 61                         if (!_shprompt.shpromptObj.regex.test($("#dialogprompt .text").val())) {
 62                             $("#dialogprompt .alert .promptmsg").html(_shprompt.shpromptObj.regexmsg);
 63                             $("#dialogprompt .alert").slideDown();
 64                             return;
 65                         } else {
 66                             $("#dialogprompt .alert").hide();
 67                         }
 68                     }
 69                     _shprompt.shpromptObj.callback($("#dialogprompt .text").val());
 70                     $(this).dialog("close");
 71                 },
 72
 73                 取消: function () {
 74                     _shprompt.shpromptObj.callback($("#dialogprompt .text").val());
 75                     $(this).dialog("close");
 76
 77                 }
 78             }
 79         });
 80     });
 81
 82     window.shalert = function (message) {
 83         $("#dialogalert .msgcontent").html(message);
 84         $("#dialogalert").dialog("open");
 85     };
 86     //message 提示的信息 ,callback(true/false)回调函数
 87     window.shconfirm = function (message, callback) {
 88         $("#dialogconfirm .msgcontent").html(message);
 89         $("#dialogconfirm").dialog("open");
 90         _shconfirm.shconfirmCallBack = callback;
 91     };
 92     //message 提示的信息 ,callback(msg)回调函数(用户输入的消息), param:regex 输入的 正则验证,regexmsg 正则验证不通过的提示
 93     window.shprompt = function (message, callback, regex, regexmsg) {
 94         $("#dialogprompt .msgcontent").html(message);
 95         $("#dialogprompt").dialog("open");
 96         _shprompt.shpromptObj = {
 97             callback: callback,
 98             regex: regex,
 99             regexmsg: regexmsg
100         };
101     }
102 })();

以下是调用代码

confirm //比可惜的是 js没法模拟 js脚本暂停 所以只能以回调函数的方式 来继续下一步操作。

 function ShConfirm() {
            shconfirm("确定要这么做吗!", function (result) {
                if (result) {
                    alert("点击了确定");
                } else {
                    alert("点击了取消");
                }
            });
        }
  function ShPrompt() {
            shprompt("请问1+1等于几!", function (text) {
                alert("用户输入了:" + text);
            }, /^\d{1,}$/, "请输入数字!");
        }

shalert 就直接用就行了。和 js的alert 效果一样。

    <input type="button" name="name" value="ShAlert" onclick="shalert(‘保存成功!‘);" />
    <input type="button" name="name" value="ShConfirm" onclick="ShConfirm()" />
    <input type="button" name="name" value="ShPrompt" onclick="ShPrompt()" />

源码我已经放在了 百度网盘上,欢迎大家学习交流。

源码下载地址

http://pan.baidu.com/s/1c00Cl36

这个控件其实还有可重构的部分,比如初始化方法等等这些都没有提取出来,因为任务紧所以先这么用着。

下一次优化时会处理这些问题。

原版风格是这样的,可以通过修改引用的css上实现 demo上有详细说明。

时间: 2024-11-05 07:06:52

自定义浏览器alert ,抛弃掉死板的蓝框 自定义风格提示框。jquey ui bootstrap 实现自定义 alert confirm prompt ,by大崔的相关文章

qt之自定义提示框(不规则提示框,右下角弹窗)

http://blog.sina.com.cn/s/blog_a6fb6cc90101e4r8.html http://blog.sina.com.cn/s/blog_a6fb6cc90101dtav.html

自定义alert提示框

引言:在做js前端的时候,很多时候,我们会用到alert来显示提示信息,但是不同的浏览器,alert显示出来的效果也大不相同,尤其是chrom浏览器,显示出来在顶端,用起来很不方便,为此,考虑到信息框的一致性与浏览器的兼容问题,萌生了自己写一个的念头,在此将自己的一个小成果贴出来,抛砖引玉,希望大家多多完善. 首先,看看不同浏览器的显示效果: chrom IE8 自己完成后的效果: 这个是基于jquery+CSS+html实现的,主要为: 1.自定义提示内容与标题: 2.自定义提示框样式与大小:

自定义浏览器滚动条的样式,打造属于你的滚动条风格——兼容IE和webkit(ff不支持)

前段时间,到网上找素材时,看到了一个很个性的滚动条式,打开Chrome的调试工具看了一下,发现不是用JavaScript来模拟实现的,觉得 有必要折腾一下.于是在各大浏览器中对比了一下,发现只用Chrome适用,也就是说这个用的是Chrome的私有CSS属性.便百之谷之后,发现原来不 仅仅只用Chrome,其它的浏览器在不同程度上支持自定义滚动条样式的.下面是我不断测试的结果,若有错误或不全,请在评论里面给出,我会立马更正:若 有更好的方案,你可以留言,让大家都开开眼界...... 自定义IE浏

UIWebView 自定义网页中的alert和confirm提示框风格

.h #import <UIKit/UIKit.h> @interface UIWebView (JavaScriptAlert) -(void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame; -(BOOL)webView:(UIWebView *)sender runJavaScriptConfirmPa

alert\confirm\prompt

不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决. alert\confirm\prompt弹出框操作主要方法有: text:获取文本值 accept() :点击"确认" dismiss() :点击"取消"或者叉掉对话框 send_keys() :输入文本值 --仅限于prompt,在alert和confirm上没有输入框 一.认识alert\confirm\pro

Selenium处理alert/confirm/prompt提示框

目录 About selenium处理alert提示框 selenium处理confirm提示框 selenium处理prompt提示框 返回上一页 About 回到顶部 重新认识alert首先,不是所有的alert都能叫做alert框.JavaScript中,关于消息提示框的方法有三个(虽然都跟alert差不多): alert(message)方法用于显示带有一条指定消息和一个 OK 按钮的警告框. confirm(message)方法用于显示一个带有指定消息和 OK 及取消按钮的对话框.如果

替代alert的消息框和提示框

alert提示框由于外观不太友好,所以一般都不用alert了. 我在这里使用bootstrap的样式,写了一个可以单独显示消息,也可以确认取消的提示框. 使用的外观如下: 一:单独显示消息: 二:确认和取消: 单独显示消息的方法传递类型,信息,显示时间以及回掉函数.其中通过重载可以只传递信息. 确认和取消的方法传递类型,信息以及回掉函数.其中可以通过重载可以只传递信息和确认后执行的回掉函数.如果点击取消就去隐藏该提示框. 下面是代码: 1 //success 成功 2 //info 信息 3 /

自定义提示框

思路 利用VA_LIST可变参数,自定义欲提醒信息. 1 // 信息提示框 2 void CDECL AlertBox(TCHAR *Format, ...) 3 { 4 TCHAR buf[1024]; 5 va_list pArglist; 6 va_start(pArglist, Format); 7 _vsntprintf_s(buf, sizeof(buf)/sizeof(TCHAR), Format, pArglist); 8 va_end(pArglist); 9 MessageB

Java Selenium - 几种对话框处理Alert\confirm\prompt

1. Alert , 先用常规办法定位到能触发alert的按钮 , 然后 Alert alert = driver.switchTo().alert(); alert.accept(); 如果alert框确认后,还好连续弹出alert框,继续同样操作,注意延时...不然可能因为太快,出错,坑. Alert alert = driver.switchTo().alert(); alert.accept(); Thread.sleep(1000); alert = driver.switchTo()