1

我有一个内置在 Oracle Web 表单 10g 中的应用程序。用户可以通过网络浏览器访问表单。在表单中,有一个调用函数的按钮web.show_documents()。该函数http在另一个浏览器窗口中打开一个页面。我希望能够知道新窗口是否仍然打开或已被用户关闭,因为我不希望他一次能够打开多个 http 地址。

换句话说,我想从按下按钮的那一刻起禁用按钮,直到新窗口(由该按钮按下创建)关闭。

有没有办法做到这一点?

我知道我可以通过不断地对数据库进行采样来做到这一点,但我想避免这种解决方案,因为它会消耗资源。

谢谢。

4

1 回答 1

0

这是javascript中的父子窗口关系。在 Javascript 中,子窗口可以由父窗口生成,在这种情况下,父窗口知道子窗口name并可以控制其外观和消失(openclose)。但是,在这种情况下,父窗口生成子窗口,但不是通过javascript而是使用 Oracle 表单函数web.show_documents

不幸的是,从 Oracle forms 10g 开始,没有其他 Web 功能可供您使用(11g 有web.javascript_eval_expr并且web.javascript_eval_function可以用来执行javascript)。

对于解决方案 - 最简单的方法是使用_selftarget name inweb.show_document而不是 default _blank。这将使网页在与表单会话相同的浏览器中打开(在这种情况下,您将失去表单会话)。您可以提醒用户通知此操作,说明它已完成consistency issues等,并且webpage will be opened in the same window as the forms.

另一种选择是在网页打开后完全禁用该按钮(如您所说)。但是,需要注意的是,用户可能会关闭并再次打开表单,在这种情况下,按钮将被启用(并且网页可能仍处于打开状态)。

于 2012-08-20T14:12:49.950 回答