JavaScript から Java への通信 (スクリプト作成)



このセクションでは、次のトピックについて説明します。

アプレットのスクリプトを記述する方法

アプレットのスクリプト作成は、Internet Explorer と Netscape 6 ではサポートされていますが、Netscape 4 ではサポートされていません。この章では、Java Plug-in で必要とされている特別な HTML タグが理解できていることを前提にしています。これらの特別なタグの詳細は、「Java Plug-in での OBJECTEMBED、およびAPPLET タグの使用」を参照してください。 また、JavaScript についてよく理解していることも必要です。

スクリプトの使用によって、HTML ページ内からアプレットのメソッドを呼び出すことが可能になります。 メソッドの呼び出しの他に、スクリプトの使用によって以下が実行できます。

スクリプトを使用したメソッドの呼び出し

スクリプトを使用して、アプレットのメソッドを呼び出す多くの機会があります。 一例として、クリックするとアニメーションを開始する HTML ボタンを挙げることができます。 これは、HTML タグ、HTML ファイル内のスクリプト、およびアプレット内部での実際のコード記述を組み合わせることで実現できます。

アプレットの HTML ページに、以下を含める必要があります。

これらのタグについて、以下で説明します。

アプレットの指定

HTML ページの OBJECT タグで、ID パラメータを指定する必要があります。 OBJECT タグには、classidwidthheight などのパラメータが含まれることを思い出してください。

ID パラメータは、アプレットの記号名です。 ID パラメータを使用してアプレットの記号名が確立されると、以降は、この名前を利用してアプレットを参照できます。

たとえば、Fractal と呼ばれるアプレットを保持している場合を考えましょう。 OBJECT タグに ID パラメータを追加して、ID をアプレットの記号名に設定します。 次のようにタグを設定できます。

ID="Fractal"
これで、スクリプト内で Fractal という名前を使用して、Fractal アプレットを参照できます。

この Fractal アプレットの例を使用する場合、HTML ページには、最初に FORM タグ、次に OBJECT タグが記述されます。以下に、これらのタグを示します。

<form name="Form1">
<OBJECT ID="Fractal" WIDTH=500 HEIGHT=120
CLASSID="CLSID:8AD9C840-044E-11d1-B3E9-00805F499D93"
<PARAM NAME="code" value="CLSFractal.class">
<PARAM NAME="codebase" value="1.0.2">
<PARAM NAME="level" value="5">
...
</OBJECT>

操作とスクリプトの関連付け

HTML ページで定義されたコンポーネントの目的は、ユーザによりトリガされた操作を呼び出すことです。 これらのコンポーネントの定義には、INPUT タグを使用します。 コンポーネントの TYPE タイプ (buttonNAME、および VALUE) を指定します。 ボタンまたは他のコンポーネントから目的の操作を呼び出すために、以下を指定するタグを追加する必要があります。

たとえば、HTML ページにより作成されたボタンをクリックすると、特定のアニメーションが開始される場合を考えてみましょう。 HTML タグによりボタンが作成され、ボタンに名前と値 (ラベル) が与えられます。

これを実行するには、2 つのタグを追加します。 1 つのタグは、特定の操作 (onclick など) の実行時に、対応するスクリプトメソッドが呼び出されることを示します。 タグは、onClick="method name" という形式になります。 メソッド名は、同じ HTML ページ内のスクリプトメソッドです。

したがって、HTML ページに次のように記述できます。

<input type="button" name="Button1" value="Start"
onClick="startJSFractal" language="JavaScript">

この INPUT タグによりボタンが作成され、ボタン名が「Button1」、値 (ボタン上に表示されるラベル) が「Start」に指定されます。 このタグにより、ユーザがボタンをクリックすると呼び出されるスクリプトメソッド、およびスクリプトメソッドの言語も指定されます。 この例では、スクリプトメソッドは startJSFractal、スクリプト言語は JavaScript です。 ユーザがこのボタンをクリックすると、HTML ページが拡張され、JavaScript スクリプトで記述されたスクリプトメソッド startVBFractal が呼び出されます。

Script タグおよびメソッド

onClick タグで指定したメソッド (関数) には SCRIPT タグを含める必要があります。 SCRIPT タグには、onClick タグで使用される名前と同じ名前を指定する必要があります。 このタグは、スクリプト言語を指定するパラメータも保持します。 さらに重要なこととして、スクリプトメソッドは、Java アプレットメソッドを呼び出します。 これは、メソッドの識別に、ID タグで指定されたアプレット名、次にアプレットコード内で実装された実際のメソッドを名を使用します。

たとえば、同一の HTML ページは、次の SCRIPT タグを保持します。

<SCRIPT language="JavaScript">
function startJSFractal() {
	document.Form1.Fractal.startFractal()
}
</SCRIPT>

この例の SCRIPT タグでは、スクリプト言語が JavaScript であることが最初に指定されています。 次に JavaScript の function 文が続きます。この文では、スクリプトメソッドが最初に定義されています。 function 文では、スクリプトメソッドのラベルまたは名前が startJSFractal として指定されています。 この名前は、入力コンポーネントの action パラメータに指定されたメソッド名と一致している必要があります。

この例では、onClick パラメータおよび function 文の両方で、同じスクリプトメソッドが指定されています。 スクリプトメソッド startJSFractal は、アプレットコード内で実装された実際のメソッド startFractal() を呼び出すだけです。 これは、メソッド名を、ドキュメントフォーム名、アプレット名 (OBJECT ID)、メソッド名の順に使用して修飾した名前です。

document.Form1.Fractal.startFractal()