appletobject、およびembedタグの使用

Java Rich Internet Applicationガイド> アプレット開発者ガイド> appletobjectおよびembedタグの使用

このセクションでは、appletobjectおよびembedタグを使用してJavaアプレットをWebページに追加する方法について説明します。また、アプレットをインターネットやイントラネット上に配備したり、各種ブラウザで使用できるように配備したりするためのガイドラインも示します。

次の項目について説明します。

全般的な考慮事項

アプレットの配備方法は、ユーザーがWebページにインターネットまたはイントラネットのいずれでアクセスするか、およびユーザーが使用するブラウザのタイプによって異なります。ユーザーに関するこの情報に注意して、次の全般的なガイドラインに従ってください。

インターネットとイントラネットでのアプレットの配備

アプレットを次のように配備します。

特定のブラウザに対するアプレットの配備

アプレットを次のように配備します。

ブラウザが混在する環境でアプレットを配備する場合は、セクション「ブラウザが混在する環境でのアプレットの配備」のガイドラインに従ってください。

appletタグの使用

appletタグを使用して、マルチブラウザ環境にアプレットを配備します。

appletタグの詳細は、次を参照してください。

注: HTML仕様では、appletタグは推奨されておらず、代わりにobjectタグを使用することが推奨されています。ただし、ブラウザがobjectタグを実装してJavaアプレットをサポートする方法に関してこの仕様は明確ではなく、現在のところ一貫性のあるブラウザ・サポートは行われていません。このため、すべてのプラットフォームのブラウザにJavaアプレットを配備するための一貫性のある方法として、appletタグを継続して使用することをお薦めします。

appletタグの構文を次に示します。必須属性は太字で示します。オプション属性は普通の書体で示します。ユーザーが指定する値は斜体で示します。

    <applet
        codebase = codebaseURL
        archive = archiveList
        code = appletFile ...or...  object = serializedApplet
        alt = alternateText
        name = appletInstanceName
        width = pixels
        height = pixels
        align = alignment
        vspace = pixels
        hspace = pixels
        legacy_lifecycle = boolean
    >
    <param name = appletAttribute1 value = value1>
    <param name = appletAttribute2 value = value2>
    ...
    alternateHTML
    </applet>

codecodebaseなどはappletタグの属性であり、アプレットに関する情報をブラウザに伝えます。必須属性は、codewidthおよびheightのみです。各属性について、次に説明します。

codebase = codebaseURL
このオプション属性はアプレットのベースURL (アプレットのコードを含むディレクトリ)を示します。この属性を指定しない場合は、ドキュメントのURLが使用されます。
archive = archiveList
このオプション属性は、「プリロード」されるクラスやその他のリソースを格納している1つ以上のアーカイブを示します。それらのクラスは、指定されたcodebaseAppletClassLoaderのインスタンスを使用してロードされます。
archiveList内のアーカイブはカンマ(,)で区切ります。注: JDK 1.1では、同じcodebaseを持つ複数のappletタグで同じClassLoaderインスタンスを共有します。クライアント・コードには、この方法を使用してアプレット間通信を実装するものがあります。将来のJDKでは、アプレット間通信の別のメカニズムが提供される可能性があります。セキュリティ上の理由から、アプレットのクラス・ローダーは、そのアプレットが起動されたのと同じコード・ベースからしか読み取ることができません。これは、archiveList内のアーカイブがコード・ベースと同じディレクトリか、コード・ベースのサブディレクトリ内になければならないことを意味します。../a/b.jarという形式のarchiveList内のエントリは、セキュリティ・ポリシー・ファイル内で明示的に許可されていないかぎり、機能しません(HTTPコード・ベースの場合は例外で、archiveList内のアーカイブはコード・ベースと同じホストのものでなくてはならないが、パスに親ディレクトリのシンボル(..)が含まれていても構わない)。
code = appletFile
この必須属性は、アプレットのコンパイル済のAppletサブクラスを含んでいるファイルの名前を示します。このファイル名は、アプレットのベースURLからの相対パスで指定します。絶対パスでは指定できません。codeobjectのいずれかが存在している必要があります。appletFile値の形式は、classname.classまたはpackagename.classname.classにできます。
object = serializedApplet
この属性は、アプレットの直列化表現を含んでいるファイルの名前を示します。そのアプレットは直列化解除されます。init()メソッドは呼び出されませんが、そのstart()メソッドは呼び出されます。元のオブジェクトの直列化時に有効だった属性は復元されません。このappletインスタンスに渡された属性はすべてそのアプレットで利用できるようになります。この機能の使用には強い制限をかけることをお薦めします。アプレットは、直列化する前に停止する必要があります。codeobjectのいずれかが存在している必要があります。
alt = alternateText
このオプション属性は、ブラウザがappletタグを理解できるが、Javaアプレットを実行できない場合に表示されるべきテキストを示します。
name = appletInstanceName
このオプション属性はアプレット・インスタンスの名前を示します。この名前により、同一ページ上のアプレットが互いを検知(および通信)できます。
width = pixels
height = pixels
これらの必須属性は、アプレットの表示領域の幅と高さ(ピクセル数)の初期値を示します。アプレットが表示するウィンドウやダイアログは考慮しません。
align = alignment
このオプション属性はアプレットの配置方法を示します。この属性に設定できる値はimgタグと同じで、leftrighttoptexttopmiddleabsmiddlebaselinebottomおよびabsbottomです。
vspace = pixels
hspace = pixels
これらのオプション属性は、アプレットの外側の上下(vspace)および左右(hspace)のピクセル数を示します。imgタグのvspaceおよびhspace属性と同様に扱われます。
legacy_lifecycle = boolean
このオプション属性がtrueに設定されている場合、ユーザーが他のページに移動しても実行中のアプレットは破棄されません。さらに、ユーザーが元のページに戻ると、次が発生しないかぎり、実行中のアプレットが再開します。
  • ブラウザからアプレット定義の要求が再発行されます。
  • この要求への応答によって、元の要求から返されたアプレット定義とは異なるアプレット定義が生成されます。
<param name = appletAttribute1 value = value1>
<param name = appletAttribute2 value = value2> ...
このタグは、アプレットの独自の属性を指定する唯一の方法です。アプレットは、getParameter()メソッドを使用してその属性にアクセスします。

objectタグの使用

objectタグを使用して、Internet Explorerでのみ使用されるアプレットを配備します。objectタグの詳細は、「W3 HTML specification」を参照してください。objectタグの例を次に示します。

<OBJECT 
  classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
  width="200" height="200">
  <PARAM name="code" value="Applet1.class">
</OBJECT>

classid属性

classid属性は、使用するJava Plug-inの最小バージョンを識別します。

次に示す例は、classid属性のもっとも一般的に使用される形式です。この例では、インストールされているもっとも上位のバージョンのJava Plug-inを使用するようにInternet Explorerに指示します。

classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"

classid属性の別の形式を次に示します。

classid="clsid:CAFEEFAC-xxxx-yyyy-zzzz-ABCDEFFEDCBA"

この形式では、「xxxx」、「yyyy」、および「zzzz」は、使用するJava Plug-inの最小バージョンを識別する4桁の数字です。たとえば、Java Plug-inバージョン1.8を使用するには、次のように指定します。

classid="clsid:CAFEEFAC-0018-0000-0000-ABCDEFFEDCBA"

classid属性の詳細は、「Deploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer」を参照してください。

codebase属性

オプションのcodebase属性を使用して、JREをダウンロードするかどうか、およびその方法を指定します。codebase=<URL>形式では、classid属性によって指定されたJREがローカルにインストールされていない場合に、ユーザーは指定されたURLからJREをダウンロードすることを求められます。

embedタグの使用

embedタグを使用して、Mozillaファミリのブラウザでのみ使用されるアプレットを配備します。

embedタグの例を次に示します。

<embed code="Applet1.class"
  width="200" height="200"
  type="application/x-java-applet;version=1.8"
  pluginspage="http://www.oracle.com/technetwork/java/javase/downloads/ea-jsp-142245.html"/>

type属性は、次の2つの形式のいずれかです。

ブラウザが混在する環境でのアプレットの配備

次の2つの方法のいずれかで、Internet ExplorerとMozillaファミリのブラウザの両方のユーザーにアプレットを配備できます。

Pure HTMLを使用したアプレットの配備

Pure HTMLアプローチを使用してブラウザが混在する環境でアプレットを配備する場合は、次のことに注意してください。

HTMLページの次のコード例を検討してください。

<object 
  classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
  <param name="code" value="Applet1.class">
    <comment>
      <embed code="Applet1.class"
        type="application/x-java-applet;version=1.8">
        <noembed>
          No Java Support.
        </noembed>
      </embed>
    </comment>
  </object>

JavaScriptを使用したアプレットの配備

前述したPure HTMLアプローチを使用する代わりに、JavaScriptを使用してブラウザが混在する環境でアプレットを配備できます。

JavaScriptを使用して、次の手順を実行します。

  1. appName変数を使用して、ユーザーのブラウザを検出します。

  2. document.write()メソッドを使用して、appName変数の値に基づいてタグを記述します。

  1. ブラウザ名が「Mozilla」の場合、embedタグを記述します。

  2. ブラウザ名が「Microsoft Internet Explorer」の場合、objectタグを記述します。

次の例では、document.write()メソッドは、ユーザーごとにオン・ザ・フライでembedまたはobjectタグを出力します。

<html>
<script language="Javascript">

  var _app = navigator.appName;

  if (_app == 'Mozilla') {
    document.write('<embed code="Applet1.class"',
                   'width="200"',
                   'height="200"',
                   'type="application/x-java-applet;version=1.8.0">');
    }
  else if (_app == 'Microsoft Internet Explorer') {
    document.write('<OBJECT ',
                   'classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"',
                   'width="200"',
                   'height="200">',
                   '<PARAM name="code" value="Applet1.class">',
                   '</OBJECT>');
    }
  else {
    document.write('<p>Sorry, unsupported browser.</p>');
    }

</script>
</html>

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.