js 重写系统confirm方法,不改变使用方式。
1个回答
展开全部
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方法,不改变使用方式。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询