效果如图所示,其风格与 Ext.Msg.alert() 相似,但右上角的关闭按钮已被隐藏——详情请参见下方截图。

为什么需要移除关闭按钮?在 Ext JS 4 中,消息框自带的关闭按钮点击后不会触发任何回调函数,它只是静默关闭窗口。如果你希望在用户关闭时执行确认、日志记录等逻辑,这种默认行为将无法满足需求。因此,最佳方案是隐藏关闭按钮,迫使用户只能通过你自定义的按钮(如“确定”、“取消”)来关闭窗口,从而确保回调函数正常触发。
实现方法极为简洁,核心代码如下所示:
Ext.Msg.show({
title : '系统提示',
msg : 'Extjs4 去掉提示框右上角关闭按钮',
buttons: Ext.Msg.OK,
fn: showResult,
closable: false
});
关键在于配置项 closable: false。将其设为 false 后,消息框右上角的关闭图标不再显示,用户只能通过你指定的按钮(本例中为 Ext.Msg.OK)关闭窗口,点击按钮时即会触发 fn 中定义的回调函数 showResult,从而实现完全可控的操作流程。
当然,如果需要更复杂的按钮组合(例如“是”、“否”、“取消”),或在回调中执行更多业务逻辑,均可在此基础上扩展。然而,仅就隐藏关闭按钮这一需求而言,只需一行 closable: false 配置即可完美解决,简洁高效。
