单击Oracle APEX导航栏项目时的条件操作

Conditional actions when an Oracle APEX navigation bar item is click

本文关键字:条件 操作 项目 Oracle APEX 导航 单击      更新时间:2023-09-26

应用程序在导航栏中有一个Home项(该项在所有页面中)。我希望当单击主页项时,根据页码向用户显示一个警告框,警告他们所有未保存的工作都将丢失。如果用户按下"是",他或她将被带到应用程序主页,并且不会保存任何内容。如果他们按"否",他或她将留在页面中。

目前,此对话框显示在每一页中。在Oracle Application Express shared components > navigation bar > target area中,以下是我的设置:

目标类型=url

URL目标=

javascript:if(confirm('All unsaved work will be lost?')) 
{window.location.href ='f?p=&APP_ID.:1:&SESSION.:&APP_PAGE_ID.';}

我希望这种行为只发生在选定数量的页面中。当用户单击此列表中未包含的页面时,不应显示警告框,并将用户带到应用程序主页。

您想要的是一个针对导航栏条目的动态操作。但是,没有简单的方法可以选择性地在选择项目上启用或禁用此操作,除了测试锚标记的文本。这意味着您将在动态操作中对值进行硬编码以测试链接,我不建议这样做。没有可以分配的类,也没有onclick事件
你可以使用你发布的代码,并有一个javascript函数,它将页面id作为输入参数,然后根据允许操作的页面列表检查页面id,但同样很复杂。使用一些ajax可以使其动态化,但由于您不熟悉javascript,因此最好先熟悉它,然后再处理它
所以,与其发明这样的东西,不如看看这个先保存后退出的插件。它将检查是否有未保存的更改,您可以将其添加到您想要的页面中。