1

Oracle Web Forms 10g で構築されたアプリケーションがあります。ユーザーは、Web ブラウザーを介してフォームにアクセスできます。フォームには、関数を呼び出すボタンがありますweb.show_documents()。この関数はhttp、別のブラウザー ウィンドウでページを開きます。新しいウィンドウがまだ開いているか、ユーザーによって閉じられているかを知りたいのですが、そのhttpアドレスを一度に複数開くことができないようにしたいからです。

つまり、ボタンが押された瞬間から、そのボタンを押して作成された新しいウィンドウが閉じられるまで、ボタンを無効にしたいと考えています。

それを行う方法はありますか?

データベースを常にサンプリングすることでそれができることはわかっていますが、リソースを消費するため、このソリューションは避けたいと思います。

ありがとう。

4

1 に答える 1

0

これは javascript での親子ウィンドウの関係です。Javascript では、親ウィンドウによって子ウィンドウを生成できます。その場合、親ウィンドウは子ウィンドウを認識しており、nameその外観と非表示を制御できます (openまたはclose)。ただし、この場合、親ウィンドウは子ウィンドウを生成しますが、javascriptOracle フォーム関数を介してではなく使用しますweb.show_documents

残念ながら、Oracle Forms 10g の時点では、他に使用できる Web 機能はありません (11g にはweb.javascript_eval_exprweb.javascript_eval_function実行に使用できる と がありますjavascript)。

解決策として、最も簡単な方法は、 default の代わりに_selfターゲット名を使用することです。これにより、フォーム セッションと同じブラウザーで Web ページが開かれます (この場合、フォーム セッションが失われます)。このアクションを通知するユーザーに、などに対して行われたこと、および.web.show_document_blankconsistency issueswebpage will be opened in the same window as the forms

もう1つのオプションは、Webページが開いたら(あなたが言ったように)ボタンを完全に無効にすることです. ただし、これに対する注意点は、ユーザーがフォームを閉じて再度開くことができるということです。この場合、ボタンは有効になります (Web ページはまだ開いている可能性があります)。

于 2012-08-20T14:12:49.950 に答える