在我的ExtJs应用程序中,我使用 Ext.Msg 对象以及一个普通的java脚本警报创建了两条警报消息。下面是代码。
Ext.onReady(function(){
Ext.Msg.alert("Alert One");
Ext.Msg.alert("Alert Two");
alert("Alert Three");
});
运行此代码后,我发现浏览器首先显示正常的警报消息,然后显示第二个Ext JS警报消息。它没有填充第一个Ext JS警报消息
所以我的问题是
我做错了吗?如果没有那么为什么会发生这种情况?请帮我。
答案 0 :(得分:2)
Ext.Msg.alert
方法不会阻止javascript代码执行。这意味着在第一个Ext.Msg.alert
显示脚本执行后,打开第二个Ext警报。根据其工作原理,一次只能显示一个警报消息实例,因此第二个实例只会覆盖第一个实例。
就本地alert
功能而言,它的工作方式完全不同。它会阻止UI并停止后续脚本执行。您可以看到它,因为它是通过任何其他页面布局呈现的。这就是为什么即使提出Ext警报,本机浏览器警报仍将覆盖它。
答案 1 :(得分:0)
Ext.MessageBox是一个单例,因此您无法创建多个单独的实例。为了证明这一点如果您要添加一个延迟来显示第二个,比如5秒,您会看到第一个出现。 E.g。
Ext.Function.defer(function(){
Ext.MessageBox.alert("message two");
}, 5000);