OAF中如何新开一个窗口

OAF页面要新开窗口,可以在带有导航功能的Item,如link和button(非提交按钮),指定Target Frame属性为”_blank“,就可以新开窗口打开Destination URI属性指定的路径。

如果用户希望新开的窗口能隐藏地址栏、工具栏、菜单栏或者想控制窗口大小,那么在上面所说的Destination URI属性中使用

javascript:window.open(‘OA.jsp?page=XXX’,'<windowName>’, ‘<params>’)

 

注意:在对按钮的Destination URI属性使用Javascript的新开窗口时,需要在首选项中设置可访问功能为标准可访问性,否则Javascript将无法执行。

虽然以上的方法能够实现新开窗口,但还有很多的限制,比如如果在新开窗口前需要执行某些特定操作、或者新开窗口的URL是需要通过执行某些逻辑才能得到的,那么上面的方法就无法实现了。

在OAF中,Oracle不建议在OAF中使用Javascript,但是OAF还是提供了API用于执行Javascript:

OAPageContext.putJavascriptFunction(String name, String function)
OAPageContext.removeJavascriptFunction(String name)
OAPageContext.putJavascriptLibrary(String name, String library)
OAPageContext.removeJavascriptLibrary(String name)
 


 

 

假设用户提交了请求(点击链接、提交按钮等等触发事件的情况)需要新开窗口,在processFormRequest方法中,按一下步骤进行:

1、首先执行pageContext.removeJavascripFunction()

这是非常重要的一点,因为一旦Javascript注册到OAPageContext之后,就一直存在于OAPageContext中,这样会导致每次页面的刷新时都会执行Javascript。

 

2、在特定的事件中,执行程序逻辑,注册Javascript到OAPageContext对象中

if (pageContext.getParameter("Open") != null)
{
  // 执行其它处理
  ...
 
  // 定义Javascript
  String jScript = "window.open('OA.jsp?page=XXX')";
  pageContext.putJavascriptFunction("FunctionName", jScript)
}
 


 

注意:在调用putJavascriptFunction()时,必须指定Name参数,只有这样才可以调用removeJavascriptFunction()。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值