js 重写系统confirm方法,不改变使用方式。

 我来答
的白玉1m
2017-11-04 · 超过25用户采纳过TA的回答
知道答主
回答量:56
采纳率:75%
帮助的人:40.2万
展开全部
1、confirm属于特殊的模态窗口,执行这些语句会阻塞浏览器 Javascript 代码的运行。也就是说,在这句中 var a = confirm( "OK?" ) ;执行了 confirm( "OK?" ) 弹出一个确认框后,javascript 就不再执行,等到点完按钮、返回一个值后,才能完成赋值语句的执行。想要模拟这个功能,除非能弹出另外一个模态窗口,否则只用 普通的蒙版和 div 层是做不到阻塞 Javascript 的执行的。修改方法改成:function Confirm(msg,callback_OK,callback_CANCEL) { btnok.onclick = function(){ if(callback_OK && typeof callback_OK == "function") callback_OK( true ); close();//你应该有这个功能吧? } btncancel.onclick = function(){ if(callback_CANCEL && typeof callback_CANCEL== "function") callback_CANCEL( false ); close();//你应该有这个功能吧? }}这样的话,如果想执行类似这样的功能:if(confirm( "OK?" )){ okHandlerCode();}else{ cancelHandlerCode();}Confirm( "OK?" , okHandlerCode , cancelHandlerCode );利用这种方式,就解决了确认对话框的返回值接收的问题:js 重写系统confirm方法,不改变使用方式。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式