我们先看看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
是窗口关闭后执行的回调函数。
呵呵,解决办法出来了,就是将后续的执行动作放到这个函数里,等窗口关闭后继续执行。