Apex控制台报错求助:Service Workers及动态内容区域相关问题
Oracle APEX 23.1.3 浏览器控制台报错排查与解决
报错内容汇总
控制台出现以下警告与错误:
Service workers are not supported on HTTP pages. Dynamic Content region must use a template with ID attribute Uncaught Error: Region element not found R8673356286039918
完整报错堆栈:
desktop_all.min.js?v=23.1.0:5 Service workers are not supported on HTTP pages. e.warn @ desktop_all.min.js?v=23.1.0:5 a.init @ desktop_all.min.js?v=23.1.0:56 (anonymous) @ brentity?p2_form_mode=A&session=23824403876947&cs=1hYXr2ArG3_e2gkrL3_LRx3UHQqIHPp6H0k1pUHyMPqYW0l-n6M2ZmPbAKGBSMgr7qYA-t1nqMXNobXExoxO09Q:2507 desktop_all.min.js?v=23.1.0:5 Dynamic Content region must use a template with ID attribute e.error @ desktop_all.min.js?v=23.1.0:5 s @ desktop_all.min.js?v=23.1.0:53 (anonymous) @ desktop_all.min.js?v=23.1.0:53 e @ desktop_all.min.js?v=23.1.0:2 t @ desktop_all.min.js?v=23.1.0:2 setTimeout (async) (anonymous) @ desktop_all.min.js?v=23.1.0:2 c @ desktop_all.min.js?v=23.1.0:2 fireWith @ desktop_all.min.js?v=23.1.0:2 fire @ desktop_all.min.js?v=23.1.0:2 c @ desktop_all.min.js?v=23.1.0:2 fireWith @ desktop_all.min.js?v=23.1.0:2 ready @ desktop_all.min.js?v=23.1.0:2 $ @ desktop_all.min.js?v=23.1.0:2 desktop_all.min.js?v=23.1.0:5 console.trace e.error @ desktop_all.min.js?v=23.1.0:5 s @ desktop_all.min.js?v=23.1.0:53 (anonymous) @ desktop_all.min.js?v=23.1.0:53 e @ desktop_all.min.js?v=23.1.0:2 t @ desktop_all.min.js?v=23.1.0:2 setTimeout (async) (anonymous) @ desktop_all.min.js?v=23.1.0:2 c @ desktop_all.min.js?v=23.1.0:2 fireWith @ desktop_all.min.js?v=23.1.0:2 fire @ desktop_all.min.js?v=23.1.0:2 c @ desktop_all.min.js?v=23.1.0:2 fireWith @ desktop_all.min.js?v=23.1.0:2 ready @ desktop_all.min.js?v=23.1.0:2 $ @ desktop_all.min.js?v=23.1.0:2 desktop_all.min.js?v=23.1.0:14 Uncaught Error: Region element not found R8673356286039918 at l.create (desktop_all.min.js?v=23.1.0:14:1801) at new s (desktop_all.min.js?v=23.1.0:53:591) at HTMLDocument.<anonymous> (desktop_all.min.js?v=23.1.0:53:666) at e (desktop_all.min.js?v=23.1.0:2:30158) at t (desktop_all.min.js?v=23.1.0:2:30460) l.create @ desktop_all.min.js?v=23.1.0:14 s @ desktop_all.min.js?v=23.1.0:53 (anonymous) @ desktop_all.min.js?v=23.1.0:53 e @ desktop_all.min.js?v=23.1.0:2 t @ desktop_all.min.js?v=23.1.0:2 setTimeout (async) (anonymous) @ desktop_all.min.js?v=23.1.0:2 c @ desktop_all.min.js?v=23.1.0:2 fireWith @ desktop_all.min.js?v=23.1.0:2 fire @ desktop_all.min.js?v=23.1.0:2 c @ desktop_all.min.js?v=23.1.0:2 fireWith @ desktop_all.min.js?v=23.1.0:2 ready @ desktop_all.min.js?v=23.1.0:2 $ @ desktop_all.min.js?v=23.1.0:2
复现步骤
- 创建新页面
- 添加一个区域
- 将区域类型改为Dynamic Content
- 在
PL/SQL Function Body returning a CLOB中写入return ''; - 在外观设置中将Template改为None
- 运行页面
报错原因分析
- Service workers警告:Service Worker API仅支持HTTPS协议(localhost开发环境除外),HTTP页面无法启用该功能,属于环境限制类提示,不影响核心功能。
- Dynamic Content区域错误:这是APEX 23.1.3的已知bug,当Dynamic Content区域设置为无模板且PL/SQL返回空内容时,页面不会生成带ID属性的DOM容器,导致APEX的前端JS无法找到对应区域元素,进而抛出错误。
解决方案
针对Service Worker警告
- 生产环境:将应用部署到HTTPS域名下,即可消除该警告。
- 本地开发:使用localhost访问应用,浏览器会允许localhost使用Service Worker,警告自动忽略。
针对Dynamic Content区域错误
以下方案任选其一:
- 方案1:指定带ID的区域模板:给Dynamic Content区域选择一个包含ID属性的模板,比如默认的
Blank with Attributes模板,确保页面生成带ID的容器,即使返回空内容也能正常初始化。 - 方案2:修改PL/SQL返回内容:如果必须使用无模板,修改PL/SQL函数,不要返回空字符串,至少返回一个空DOM标签,例如:
确保页面存在可供JS识别的DOM元素。return '<div></div>'; - 方案3:升级APEX版本:等待Oracle发布后续版本修复该bug,升级到最新稳定版即可解决。
内容的提问来源于stack exchange,提问作者bjan
相关产品推荐
相关产品推荐

