Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击Oracle APEX导航栏项时的条件操作_Javascript_Oracle Apex - Fatal编程技术网

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

Javascript 单击Oracle APEX导航栏项时的条件操作,javascript,oracle-apex,Javascript,Oracle Apex,应用程序在导航栏中有一个主项(该项位于所有页面中)。我希望在单击主页项目时,根据页码向用户显示一个警告框,警告他们所有未保存的工作都将丢失。如果用户按yes,他或她将被带到应用程序主页,并且不会保存任何内容。如果他们按“否”,他或她将留在页面中 当前,此对话框显示在每个页面中。在Oracle Application Express中,共享组件>导航栏>目标区域,以下是我的设置: 目标类型=url URL目标= javascript:if(confirm('All unsaved work wil

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

当前,此对话框显示在每个页面中。在Oracle Application Express中,
共享组件>导航栏>目标区域
,以下是我的设置:

目标类型=
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,最好先熟悉它,然后再处理它。
所以,与其发明这样的东西,不如看看这个。它将检查未保存的更改,您可以将其添加到您想要的页面中