javascript自定义可连续调用,连续弹出的alert、confirm

     最近有个需求要改掉原来所有的alert窗口,改成一种自定义样式的窗口,找了下,关于alert,confirm重载的实现在网上有一大堆,但都有一个共同的缺点,就是无法连续调用,连续弹窗,也就是当需要连续弹出多个alert窗口时,它只会弹出一个alert窗口,且窗口内容是最后一次调用的alert方法的内容.这是因为重载后的的alert方法是非阻塞的,所以它会顺序执行,而不是等待用户点击按钮后才执行下面的代码.后来找了很久,都没能找到在javascript中造成阻塞的方法,于是就只能采用一个队列实现了这一功能.

      先说说使用方法,这里我定了一个msgBox的对象,这个对象对外只有一个方法,就是show()方法,通过调用这个show方法来实现弹窗的效果.

    

 

注意,该msgBox.show重载的alert和confirm方法并不能完全替代默认的lert和confirm,这是因为默认的alert和confirm是阻塞的,所以在代码的实现也会略有不同.如传统的confirm,使用方法是:

 

 

如果用该msgBox.show()重载的confirm方法来写就需要这样:

 

 

      所以这里不建议大家直接重载alert和confirm,一方面是因为alert的阻塞性在调试方面能提供很多方便,另一方面,重载后,失去阻塞性的代码,可能会引起一部分已有的实现发生一些意外的错误.

 

       下面是实现代码和测试代码,csdn把部分字符做了转义和过滤,所以直接复制用不了,有空传个html文件上来供下载测试,咱没正经学过js,所以写的很难看.附带写了一个简单的展现窗口的函数,这个函数可以淡出窗口,或者实现窗口弹出的动画效果.

 

 

 

 

 最后来张效果图:

 

效果图

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值