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