Oracle Apex 如何将页面项显示为 url

时间:2021-07-05 18:09:56

标签: oracle-apex

我有一个存储 URL 的页面项。

如何将其类型更改为 URL,以便链接可点击。

截至目前,有页面子类型 url,但设置它没有任何区别。

enter image description here

顶点 21.1

1 个答案:

答案 0 :(得分:0)

文本字段是一个 html 输入元素,它只会显示文本,您可能可以编写一些 javascript 来打开 url 中页面项目中的任何内容,但这是令人困惑的功能。如果用户点击输入元素会发生什么?它应该打开链接还是用户应该编辑值? 这是一种可能。

  1. 在您的页面上创建一个页面项目,例如 P1_URL
  2. 在页面项的“发布文本”属性中添加以下内容(根据您自己的喜好设置样式):
<a href="#" target="_blank" id="myurl"><span class="fa fa-external-link" aria-hidden="true"></span></a>
  1. 使用“执行 Javascript 代码”的真实操作和以下代码添加对元素 P1_URL 更改的动态操作:
$("#myurl").attr("href", apex.item( "P13_URL" ).getValue())
  1. 检查“初始化时触发”以了解真正的操作。

这就是它的全部内容,现在当您在页面项 P1_URL 中添加内容并单击链接时,它将在新窗口中打开该网址。

UPDATE:只读文本字段的技术。 对于只读文本字段,输入元素是隐藏的,附加的 span 元素以页面项目名称作为 id,以 _DISPLAY 为后缀。诀窍是获取该 span 元素的内容并添加一个带有属性的锚点。这可以通过加载动态操作来完成:

  1. 在您的页面上创建一个页面项目,例如 P1_URL,将其设置为“只读:始终”

  2. 使用“执行 Javascript 代码”的真实操作和以下代码在页面加载上添加动态操作:

let itemVal = $("#P1_URL_DISPLAY").text()
$("#PP1_URL_DISPLAY").html(`<a href='${itemVal}' target='_blank'>${itemVal}</a>`)

确保复制时引号完全相同:外部引号是反引号,这是 ES6 语法所必需的。

注意:检查子类型 url 的页面文档 - 它准确地解释了它的作用。