首页 > 解决方案 > Oracle Apex 模态对话框链接被错误转换

问题描述

我有一个通过 Javascript的 Oracle Apex 18.1对话框。在该模态对话框内有一个经典报告区域,其中显示了一堆附加了超链接的图像。我使用的模板如下所示:

<a href="f?p=&APP_ID.:40:&APP_SESSION.::NO:RP:P40_VIDEOID:#VIDEOID#">
    <img src="https://img.youtube.com/vi/#VIDEOID#/mqdefault.jpg" width="210" height="118"> 
</a>

问题是,Apex 在打开模态对话框之前将该链接转换为如下所示:

<a href="javascript:apex.navigation.dialog.close(true,'f?p=100:40:4815510542999:::::');::NO:RP:P40_VIDEOID:vFZHArtFt8Y" class="WATCHED_VIDEO_0">
    <img src="https://img.youtube.com/vi/vFZHArtFt8Y/mqdefault.jpg" width="210" height="118"> 
</a>

会破坏页面,因为那里的 Javascript 无效 - 项目参数没有被替换,因此链接不起作用。

我该怎么做才能让 apex 包含该项目值?

标签: oracletemplatesplsqloracle-apex

解决方案


也许您可以在您的选择中创建 url,然后在您的模板中使用。在您的 sql 中,您使用 APEX_UTIL.PREPARE_URL 创建 URL 并将列命名为 url

SELECT
...,
APEX_UTIL.PREPARE_URL(
    p_url => 'f?p=' || :APP_ALIAS || ':40:' || :APP_SESSION ||'::NO::P40_VIDEOID:' || mytable.video_id,
    p_checksum_type => 'SESSION') as url
FROM
mytable

在您的模板中,您可以像使用 #VIDEOID# 一样使用 url 值

<a href="#URL#">
    <img src="https://img.youtube.com/vi/#VIDEOID#/mqdefault.jpg" width="210" height="118"> 
</a>

推荐阅读