JS は OCX コントロールのイベントをサポートします。OCX コントロールによって定義されたイベントが発生すると、JS はイベントをキャプチャし、それに応じてイベントを処理できます。
個人的に理解しているのは、実際に誰がイベント応答を完了するかということです。JS によって提供されるメカニズムにより、JS が OCX コントロール イベントへの応答を完了することもできます。
簡単な例は次のとおりです:
まず、OCX コントロールにカスタム イベントを追加します (マウス クリックなどの定義済みイベントにも同じことが当てはまります。私自身は試していませんが、原理は同じはずです)、
イベントはウィンドウに属している必要があるため、以下に示すように、Ctrl クラスを右クリックし、[追加]、[イベントの追加] の順にクリックします。
開いたダイアログ ボックスにイベント名を入力します (例: OnChange)。パラメーターが必要な場合は、パラメーター情報を設定し、[完了] をクリックします。次のように、ウィザードがコードを自動的に生成します。
//イベントマッピング
BEGIN_EVENT_MAP(CH_OcxCtrl, COleControl)
EVENT_CUSTOM_ID("OnChange"、eventidChange、OnChange、VTS_NONE)
END_EVENT_MAP()
イベント定義が完了したら、OCX コントロールの関数で OnChange() を呼び出してイベントをトリガーする必要があります。
これでOCXコントロールのイベント定義が完了しました。
次のステップは JS でのイベントへの応答です。コードは次のとおりです。
<スクリプト言語="javascript" for="MyCtrl" イベント="OnChange()" type="text/javascript">
Call(); //オペレーションコードを直接記述することもできます
MyCtrl は、このページのコントロールの OCX コントロール オブジェクト ID です (名前は機能するようですが、試していません)。このオブジェクトは JavaScript で操作できます。
OnChange() は OCX コントロールのイベントです。ここでのイベント名は、OCX コントロールのイベント名と同じである必要があります。
イベントにパラメータがある場合、イベントがトリガーされると、OCX コントロールは対応するパラメータを渡します。たとえば、イベントには 2 つのパラメータ p1 と p2 があり、event = "OnChange(param1,param2)" と記述できます。今回は、param1 と param2 が p1 と p2 を受信した後、Call(param1,param2) に対応します。
<スクリプトタイプ="text/javascript" 言語=JavaScript>
関数 Call(param1,param2)
{
alert(param1 param2); //オペレーションコード
}
急いで書いたので言語表現がよくわかりませんが、基本的な考え方はこんな感じです、メモ程度に。