我们先看看API中关于Ext.Message的中的描述:
Note that theMessageBox is asynchronous. Unlike a regular JavaScript
alert (whichwill halt browser execution), showing a MessageBox will not cause the code tostop. For this reason, if you have code that should only run aftersome user feedback from the MessageBox, you must use a callback function (seethe function parameter for show for more details).这里要我们注意Ext的MessageBox是异步,和JS的alert是不同,JS的alert执行的时候会挂起代码,不继续执行,而Ext的MessageBox是会继续执行的。所以有时候我们会看到MessageBox会闪一下就过去了。如何解决这个问题呢?其实很简单。
我们看看MessageBox中alert的定义:
alert(
Stringtitle,String msg, [Functionfn], [Object scope] ) : Ext.MessageBox注意第三个参数没有?是一个函数。我们看看函数的说明:
· fn : Function
(optional) Thecallback function invoked after the message box is closed
是窗口关闭后执行的回调函数。
呵呵,解决办法出来了,就是将后续的执行动作放到这个函数里,等窗口关闭后继续执行。
本文介绍了Ext MessageBox组件的异步特性及其与JavaScript alert的区别。针对MessageBox不会阻塞后续代码执行的问题,文章提供了通过回调函数来确保特定代码仅在用户交互完成后的解决方案。

被折叠的 条评论
为什么被折叠?



