在给出参数时,使用JavaScript打开Oracle Apex URL

时间:2017-06-23 08:29:01

标签: javascript oracle oracle-apex oracle-apex-5

当我使用javascript eval()从js打开apex网址时我没有问题,当我使用eval()时这样

 eval("f?p=&APP_ID.:7:&SESSION.");

但是当我想用eval()像这样传递参数时

eval("f?p=&APP_ID.:7:&`SESSION.:P7_ID:8461,P7_ALLOWCHANGE:1,P7_WFDEF_ID:69004.");`

我收到此错误:SyntaxError: expected expression, got ':'

然后在生成url后自动添加这些参数

javascript:apex.navigation.dialog('f?p=101:7:28809985622510:::::\u0026p_dialog_cs=_7P7TVFV5LTQPjeyg-bGqSKpcYM',{title:'Workflow State',height:'auto',width:'720',maxWidth:'960',modal:true,dialog:null},'t-Dialog-page--standard '+'',this);:P7_ID:8461,P7_ALLOWCHANGE:1,P7_WFDEF_ID:69004.;

我该怎么办?

3 个答案:

答案 0 :(得分:0)

我不知道您的eval电话,但此APEX网址语法错误:

f?p=&APP_ID.:7:&`SESSION.:P7_ID:8461,P7_ALLOWCHANGE:1,P7_WFDEF_ID:69004.

所有项目名称应该一起列出,然后所有值一起列出 - 并且在正确数量的冒号分隔符之后:

f?p=&APP_ID.:7:&SESSION.::::P7_ID,P7_ALLOWCHANGE,P7_WFDEF_ID:8461,1,69004

我还从#34; SESSION"之前删除了虚假的反蜱字符。

答案 1 :(得分:0)

除了Tony Andrews所介绍的内容之外,您的网址还有一些问题: 1.它是APP_SESSION - 不是会话。这是关于built in substitution strings的文档。 2.您的物品没有被正确替换。阅读此documentation page有关APEX中替换的更多详细信息。

这是documentation on understanding APEX URL syntax

其次,这是你会尝试的。创建隐藏页面项并使用APEX_UTIL.PREPARE_URL函数并生成有效URL,分配给该项。并在您的JavaScript中将该项目用作网址。我没有试过这个,但我认为这是一个更好的方法。

还准备这样的网址:

APEX_UTIL.PREPARE_URL('f?p ='||:APP_ID ||':7:'||:APP_SESSION || :::'||:P7_ID:','||:P7_ALLOWCHANGE ||', '||:P7_WFDEF_ID ||':8461,1,69004')

这是了解apex url以及如何传递变量的另一个很好的资源: http://dgielis.blogspot.in/2015/01/understanding-apex-url-passing.html

答案 2 :(得分:0)

最好的方法是使用apex_page.get_url 它比apex_util.prepare_url

简单得多

https://docs.oracle.com/cd/E59726_01/doc.50/e39149/apex_page.htm#AEAPI30190