繁体   English   中英

当我使用Ext.Msg对象时,为什么只显示一条警报消息?

[英]Why only one alert message is displaying when I am using Ext.Msg object?

在我的ExtJs应用程序中,我使用Ext.Msg对象创建了两个警报消息以及一个普通的Java脚本警报。 下面是代码。

Ext.onReady(function(){
    Ext.Msg.alert("Alert One");
    Ext.Msg.alert("Alert Two");
    alert("Alert Three");
});

运行此代码后,我发现浏览器首先显示正常警报消息,然后显示第二个Ext JS警报消息。 它没有填充第一个Ext JS警报消息

所以我的问题是

  1. 为什么先填充普通的Java脚本警报?
  2. 为什么它没有填充1st Ext JS警报消息?

难道我做错了什么? 如果不是,那为什么会这样呢? 请帮我。

Ext.Msg.alert方法不会阻止javascript代码的执行。 这意味着在第一个Ext.Msg.alert显示脚本执行继续之后,打开第二个Ext警报。 根据其工作方式,一次只能显示一个警报消息实例,因此第二个警报消息将简单地覆盖第一个警报消息。

就本机alert功能而言,它的工作原理完全不同。 它阻止UI并停止后续脚本执行。 您可以看到它,因为它是在任何其他页面布局上呈现的。 这就是为什么即使显示了Ext警报,本机浏览器警报仍然会覆盖它的原因。

Ext.MessageBox是单例,因此您不能创建多个单独的实例。 演示这一点如果您要延迟显示第二个,例如说5秒钟,则会看到第一个出现。 例如

Ext.Function.defer(function(){
    Ext.MessageBox.alert("message two");
}, 5000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM