Oracle Apex交互式报告单元格高亮双引号转义问题如何解决
问题原因
Oracle Apex为了防范XSS注入攻击,默认会对所有从查询返回的列内容做HTML特殊字符转义,你CHK_ENTRY列返回的双引号就会被自动转义为",导致渲染后的data-style属性无法被浏览器正常识别,JS读取到的属性值也就自然是转义后的错误内容。
解决方法
方案1:直接关闭对应列的转义(配置最简单)
- 进入交互式报告的列编辑界面,找到存储颜色配置的
CHK_ENTRY列 - 在属性栏的「安全性」分类下,找到「转义特殊字符」选项,将默认的「是」修改为「否」
- 保存页面重新运行即可,此时双引号不会被转义,属性可以正常识别生效
方案2:调整实现逻辑,保留转义安全机制(更安全)
如果担心关闭转义后有XSS安全风险,可以修改实现逻辑避开直接返回HTML属性:
- 调整你调用的Function,只返回颜色值,比如直接返回
green,不需要返回完整的data-style="background-color:green"属性片段 - 将HTML Expression的配置修改为
<span data-style="background-color:#CHK_ENTRY#">#ENTRY#</span> - 保留
CHK_ENTRY列的转义设置即可正常运行,安全性更高
修改完成后重新测试,单元格背景高亮效果即可正常触发。
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

