最初は、HTML プルダウン メニューとアプレットを備えた Web ページがありました。これらのプルダウン メニューはそれぞれ、アプレット関数を呼び出す JavaScript 関数をトリガーします。アプレットは、プルダウン メニューを有効/無効にする JavaScript 関数も呼び出します。
問題は、ほとんどのブラウザーがアプレットの z-index を無視するため、HTML プルダウン メニューがアプレットによって切り取られることです。私が見つけた唯一の解決策は、アプレットを iFrame に配置することでした。
これで、HTML プルダウンによってトリガーされたアプレットへのすべての JavaScript 呼び出しが壊れます。アプレットによって呼び出される Javascript が壊れています。
すべての JavaScript 関数は、親ウィンドウにロードされる 1 つの大きな JavaScript ファイルに格納されます。
私はこのようなことをしてきましたが、それは大変な作業になり、メンテナンスが困難になります:
var appletIFRAME= document.getElementById('appletIFRAME').contentWindow;
appletIFRAME.executeAction1= executeAction1;
appletIFRAME.executeAction2= executeAction2;
...
...
これは問題なく動作しますが、親ウィンドウと IFRAME Web ページの両方でラッパー JavaScript 関数も作成する必要があると思います。また、JavaScript 関数は jQuery を使用して ID で HTML プルダウン要素にアクセスしていますが、これもリファクタリングする必要があります。これは大変な作業になります。
親ウィンドウと IFRAME の間で JavaScript を呼び出す簡単な方法はありますか? 親ウィンドウと iframe オブジェクトの間でこのすべての関数マッピングを行うことは避けたいと思います。すべての JavaScript 関数は、親ウィンドウにロードされた 1 つの JavaScript ファイルに格納されます。
HTML プルダウン メニューが親ウィンドウにあり、アプレットが iFrame にあることを追加したいだけです。これは、プルダウン メニューがアプレットによって切断されないようにする唯一の方法です。
前もって感謝します。