Oracle Apex 5.1文本域项PL/SQL函数体默认值显示位置异常
解决Oracle Apex 5.1文本域PL/SQL默认值显示位置问题
嘿,我之前也踩过这个坑!问题根源就在你用htp.p()输出内容的方式上——在Apex页面项的PL/SQL函数体默认值逻辑里,htp.p()可不是用来填充项内容的,它会直接把内容输出到HTTP响应流里,所以才会跑到奇怪的位置,而不是乖乖待在文本域中。
正确姿势:让函数返回字符串而非直接输出
把你的PL/SQL代码改成这样:
DECLARE l_default_content VARCHAR2(4000); BEGIN IF :PAGE_ITEM = 'value' THEN -- 将需要显示的HTML内容赋值给变量,最后返回 l_default_content := '<b>Hello</b><br/>'; ELSE -- 不满足条件时返回空字符串或其他默认内容 l_default_content := ''; END IF; RETURN l_default_content; END;
别忘了开启HTML解析权限
光改代码还不够,得确保文本域允许解析HTML标签:
- 编辑这个文本域页面项
- 切换到Security标签页
- 找到Escape Special Characters选项,将其设置为No
- 保存页面后重新测试
这样修改后,返回的HTML字符串会被正确填充到文本域中,<b>标签也能正常渲染成粗体,位置自然就符合预期了。
另外提醒一句:如果默认值涉及用户可控的内容,一定要做好XSS防护,避免安全风险哦!
内容的提问来源于stack exchange,提问作者Katherine Reed
相关产品推荐
相关产品推荐

