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()