为什么在我使用 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 警报消息
所以我的问题是
- 为什么它首先填充正常的 java 脚本警报?
- 为什么它没有填充第一条 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);
在我的 ExtJs 应用程序中,我使用 Ext.Msg 对象创建了两个警报消息以及一个普通的 java 脚本警报。下面是代码。
Ext.onReady(function(){
Ext.Msg.alert("Alert One");
Ext.Msg.alert("Alert Two");
alert("Alert Three");
});
在 运行 这段代码之后,我发现浏览器首先显示正常的警报消息,然后是第二条 Ext JS 警报消息。它没有填充第一条 Ext JS 警报消息
所以我的问题是
- 为什么它首先填充正常的 java 脚本警报?
- 为什么它没有填充第一条 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);