Oracle APEX:如何调整apex_application.g_print_success_message的显示位置?
调整Oracle APEX成功消息显示位置的方法
你可以通过以下几种方式调整apex_application.g_print_success_message生成的成功消息位置:
方法一:用CSS覆盖默认样式
APEX的页面消息默认放在.t-Body-alerts容器里,通过自定义CSS可以直接修改它的定位。
- 打开页面设计器,找到页面属性的「Inline CSS」(或在共享组件里添加CSS文件)
- 根据需求添加对应CSS代码:
- 顶部居中显示:
.t-Body-alerts { top: 20px; right: auto; left: 50%; transform: translateX(-50%); max-width: 600px; } - 左下角显示:
.t-Body-alerts { top: auto; bottom: 20px; right: auto; left: 20px; }
- 顶部居中显示:
- 保存页面后测试,消息位置会按设置生效。
注意:不同APEX版本的消息容器类名可能略有差异,建议先用浏览器开发者工具(F12)查看消息元素的实际类名,再调整CSS选择器。
方法二:自定义消息区域(完全控制位置)
如果需要更灵活的布局,可以放弃默认的g_print_success_message,改用自定义消息组件:
- 创建一个隐藏的页面项(比如
P1_SUCCESS_MSG),存储消息内容 - 在PL/SQL逻辑里,将消息赋值给页面项:
:P1_SUCCESS_MSG := '操作已成功完成'; - 在页面布局中添加一个区域,位置随便放(比如页面顶部、表单下方),设置区域默认隐藏,区域内的HTML内容为:
<div class="t-Alert t-Alert--success" role="alert">#P1_SUCCESS_MSG#</div> - 添加动态操作:触发条件设为「页面加载时」或「PL/SQL执行后」,动作为「显示」该区域,还可以加定时器让消息自动隐藏(比如用JavaScript
setTimeout)。
方法三:修改共享组件的消息模板
在应用的共享组件里自定义消息模板,全局调整所有页面的消息位置:
- 进入共享组件 → 其他组件 → 警报模板
- 复制默认的「Success Alert」模板,创建自定义模板
- 在模板的「CSS」部分添加定位样式,比如:
.custom-success-alert { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 9999; } - 修改模板的HTML部分,把默认的类替换成自定义类
- 在页面属性的「警报模板」选项中选择这个自定义模板,所有用
g_print_success_message生成的消息都会套用新样式。
内容的提问来源于stack exchange,提问作者Coding Duchess
相关产品推荐
相关产品推荐

