* applet 要素 (HTML, XHTML 1) [1] [[HTML]] の [DFN[[CODE(HTMLe)[applet]] 要素型]]は、 [[Java]] applet を [[HTML文書]]に埋込みます。 [2] 仕様書: - [[SI 4281]]:1998 -- [CSECTION[6.1.4 Elements with no directionality]] - [[HTML 4]] -- 13.1 Introduction to objects, images, and applets -- 13.4 Including an applet: the [CODE(HTMLe)[APPLET]] element [5] :[[開始タグ]]:必須 :[[終了タグ]]:必須 :[[内容模型]]:任意個の [CODE(HTMLe)[[[param]]]] に続けて [CODE(SGML)[(%[[flow]])*]] :出現できる文脈:[CODE(SGML)[%[[inline]]]] な文脈。 (歴史的変遷: ) :[[属性]]: ,属性名 ,属性値 ,既定値 ,説明 ,状態 ,出典 ,[CODE(HTMLa)[[[align]]]] , , ,配置 ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[alt]]]] ,[CODE(SGML)[%[[Text]]]] ,(なし) ,短い説明 ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[archive]]]] ,[CODE(ABNF)[#[CODE(SGML)[%[[URI]]]]]] ,(なし) ,書庫 ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[class]]]] , ,(なし) ,[[級]] ,[HTML 4] %[[coreattrs]] 非推奨 ,[CODE(HTMLa)[[[code]]]] ,[CODE(SGML)[[[CDATA]]]] ,(選択必須) ,級ファイル ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[codebase]]]] ,[CODE(SGML)[%[[URI]]]] ,(継承) ,[[基底URI]] ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[datafld]]]] , , ,データ欄 ,非標準 ,[[WinIE]] ,[CODE(HTMLa)[[[datasrc]]]] , , ,データ源 ,非標準 ,[[WinIE]] ,[CODE(HTMLa)[[[height]]]] ,[CODE(SGML)[%[[Length]]]] ,(必須) ,初期高さ ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[hspace]]]] ,[CODE(SGML)[%[[Pixels]]]] , ,水平余白 ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[id]]]] ,[CODE(SGML)[[[ID]]]] ,(なし) ,一意識別子 ,[HTML 4] %coreattrs 非推奨 ,[CODE(HTMLa)[[[mayscript]]]] , , , ,非標準 ,[[NC4]] ,[CODE(HTMLa)[[[name]]]] , , ,Applet 名 ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[object]]]] ,[CODE(SGML)[[[CDATA]]]] ,(選択必須) ,直列化 applet ファイル ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[src]]]] ,[CODE(HTMLa)[[[style]]]] ,[CODE(SGML)[%[[StyleSheet]]]] ,(なし) ,スタイル指定 ,[HTML 4] %coreattrs 非推奨 ,[CODE(HTMLa)[[[title]]]] ,[CODE(SGML)[%[[Text]]]] ,(なし) , ,[HTML 4] %coreattrs 非推奨 ,[CODE(HTMLa)@en[[[viewastext]]]] , , , ,非標準 ,[CODE(HTMLa)[[[vspace]]]] ,[CODE(SGML)[%[[Pixels]]]] , ,垂直余白 ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[width]]]] ,[CODE(SGML)[%[[Length]]]] ,(必須) ,初期幅 ,[HTML 4] 非推奨 [7] [CODE(HTMLa)[code]] と [CODE(HTMLa)[object]] のいずれかが必須です。 [18] HTML 4 DTD の[[注釈]] (参考) にも [Q[One of code or object attributes must be present.]] と書かれています。 ([[名無しさん]] [sage]) [[#comment]] ** 代替 [3] この要素型は HTML 4 で'''非推奨'''とされています。 代わりに [CODE(HTMLe)[[[object]]]] 要素型が使えます。 [15] ''Javaアプレット版KISS'' Java applet の埋込みの [CODE(HTMLe)[object]], [CODE(HTMLe)[applet]], [CODE(HTMLe)[[[embed]]]] での書き方について詳しいので参考に。 [[#comment]] ** 内容 [6] [CODE(HTMLe)[applet]] の内容は、任意個の [CODE(HTMLe)[[[param]]]] に続けて [CODE(SGML)[(%[[flow]])*]] が書けます。前者は applet への実行時引数、後者は[[代替文]]です。 HTML 4 [[DTD]] では [CODE(SGML)[([CODE(HTMLe)[param]] | %flow)*]] になっています。 [9] この辺の事情は [CODE(HTMLe)[object]] と同じです。 [CODE(HTMLe)[[[object]]]] 要素の内容の説明をご覧ください。 一時はダミーの [CODE(HTMLe)[[[textflow]]]] 要素型を導入して DTD 的にも正しく表現しようと試みられたことがありましたが、 最終的に採用されませんでした。 [12] [CODE(SGML)[%flow]] の部分は、 [CODE(HTMLe)[applet]] に対応していない UA や Java applet を使用しない設定のときの代替情報となります。 UA はそれ以外の時には無視しなければなりません。 [SUP[ [HTML 4] ]] [17] HTML 4 DTD の[[注釈]] (参考) には [Q[Place PARAM elements before other content.]] と書かれています。 [[#comment]] ** レンダリング [19] '''Bidi との関係''': [CODE(HTMLe)[[[applet]]]] [[要素]]は、 [[bidi]] 的には方向性に関して[[中立]]な[[文字]]1[[文字]]であるかのように扱います。 方向について特に配慮が必要なら 前後に [CODE(char)[[[LRM]]]] や [CODE(char)[[[RLM]]]] を使えます。 [SRC[SI 4281 6.1.4]] [[#comment]] ** 実装 [4] Java が有効なすべての[[ブラウザ]]が [CODE(HTMLe)[applet]] を実装しています。 (と HTML 4 仕様書に (大胆にも) 書いてあります。) [20] [CITE[Javaアプレット版KISS]] [[Java]] [[アプレット]]関係[[要素型]]の実装状況について色々メモってあります。 ([[名無しさん]] [sage]) [21] [CITE[Java VM Selector for IE v0.91]] ([[名無しさん]] [sage]) [22] [CITE[Java アプレットから Microsoft J# ブラウザ コントロールへの移行]] [CODE(HTMLe)@en[[[applet]]]]や[[Java]][[アプレット]]用[CODE(HTMLe)@en[[[object]]]]から[[J#]]用[CODE(HTMLe)@en[[[object]]]]への変換プログラム。 ([[名無しさん]] [sage]) [23] [CITE[appletかobjectか]] [[試験スイート]]と、いくつかの[[利用者エージェント]]の試験結果あり。 ([[名無しさん]] [sage]) [24] [CITE[Javaアプレット起動に使用されるJVMのベンダとバージョンの確認]] ([[名無しさん]] [sage]) [25] [CITE[[JavaHouse-Brewers:50078] Re: JRE のセキュリティホール発 覚への対応のあり方]] >>24 結果 ([[名無しさん]] [sage]) [26] [CITE[Java Plug-in での OBJECT、EMBED、および APPLET タグの使用]] ([[名無しさん]] [sage]) [27] [CITE[Welcome to Netscape Navigator 3.03]] [CODE(HTMLa)@en[[[width]]]]と[CODE(HTMLa)@en[[[height]]]]が必須なのは不具合だとされていました。 ([[名無しさん]] [sage]) [28] [CITE[Java Applets]] ([CODE[2007-02-28 00:48:04 +09:00]] 版) ([[名無しさん]]) [[#comment]] ** 歴史 [8] [CODE(HTMLe)[applet]] 要素型は、 Java 1.0β において Java 1.0α 時代の [CODE(HTMLe)[[[app]]]] 要素型の代わりとして 1995年に登場しました。 (仕様変更の事情は [CODE(HTMLe)[[[app]]]] 要素の歴史の章を参照してください。) [[JDK]] についていた Java で書かれた [[WWWブラウザ]] [[HotJava]] に実装されたのをはじめとして、 [[NN]] や [[WinIE]] などに次々と実装していきました。 [11] そして 1997年1月には [[HTML 3.2]] 勧告で正式な HTML 仕様の一部となりました。 しかし、1999年に勧告された [[HTML 4.0]] では Java applet も含めた任意の物体を埋め込むための [CODE(HTMLe)[[[object]]]] 要素型が (5年にわたる標準化作業の末に) 登場したことにより、 [CODE(HTMLe)[applet]] は'''非推奨'''とされました。 [16] その一方で、1999年から2000年にかけての [[XHTML 1.1]] [[WD]] では、 [CODE(HTMLe)[object]] を仕様に含めず、 [CODE(HTMLe)[applet]] を含めていました。 当時のブラウザの [CODE(HTMLe)[object]] による Java applet の実装状況からそうすることが検討されていたそうです。 (が、 [CODE(HTMLe)[object]] は Java applet 専用ではないのですから、何も削除まですることはあるまいに。) 参考: ''[JavaHouse-Brewers:38843] Re: How to embed an applet into an HTML document'' 結局2001年の勧告までには HTML 4 Strict DTD 同様に [CODE(HTMLe)[applet]] は削除され、 [CODE(HTMLe)[object]] が採用されました。 ([[名無しさん]]) [[#comment]] ** 例 [13] 簡単な applet 使用例 [PRE(HTML)[ Java applet that draws animated bubbles. ]PRE] [WEAK[(HTML 4 仕様書より)]] [CODE(HTMLe)[[[codebase]]]] 属性が指定されていませんから、 同じ階層にある [SAMP(URI)[Bubbles.class]] が使われます。 [CODE(HTMLe)[[[object]]]] に書き換えた例: [PRE(HTML)[

Java applet that draws animated bubbles. ]PRE] [WEAK[(HTML 4 仕様書より)]] [CODE(HTMLe)[[[classid]]]] は [SAMP(URI)[Bubbles.class]] のままでよいと思うのですが、 [SAMP(URI)[[[java]]:]] scheme というのはこのような使い方をするものなのでしょうか? [14] 引数を渡す例 [PRE(HTML)[ Java applet that plays a welcoming sound. ]PRE] [WEAK[(HTML 4 仕様書より)]] [CODE(HTMLe)[object]] で書き換えた例: [PRE(HTML)[ Java applet that plays a welcoming sound. ]PRE] こちらは余計な [SAMP(URI)[java:]] がついていません。 >>13 の書き換え例は間違いでしょうか。 [[#comment]] ** メモ [29] [CITE[Using APPLET, OBJECT and EMBED Tags]] ([CODE[2005-08-27 03:33:27 +09:00]] 版) ([[名無しさん]]) [30] [CITE[Bug 6102 – Please do not break applet element in HTML 5]] ([TIME[2008-10-17 16:33:21 +09:00]] 版) ([[名無しさん]]) [[#comment]] * メモ [31] [CITE@en[(X)HTML5 Tracking]] ([TIME[2009-10-10 02:55:47 +09:00]] 版)