ホームページ作成 質問過去ログ

                                Page     987
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼Objectタグを使ってavaアプレットを表示したい  into 05/4/6(水) 10:56
   ┗Re:Objectタグを使ってJavaアプレットを表示したい  Pid 05/4/6(水) 22:48
      ┗Re:Objectタグを使ってJavaアプレットを表示したい  into 05/4/7(木) 11:19
         ┣Re:Objectタグを使ってJavaアプレットを表示したい  Pid 05/4/7(木) 12:41
         ┃  ┗Re:Objectタグを使ってJavaアプレットを表...  into 05/4/7(木) 14:57
         ┃     ┗Re:Objectタグを使ってJavaアプレットを表...  Pid 05/4/7(木) 18:21
         ┗Re:Objectタグを使ってJavaアプレットを表示したい  into 05/4/7(木) 20:15
            ┣いえ,のニュアンス  105 05/4/7(木) 21:37
            ┗Re:Objectタグを使ってJavaアプレットを表示したい  Pid 05/4/8(金) 2:12

 ───────────────────────────────────────
 ■題名 : Objectタグを使ってavaアプレットを表示したい
 ■名前 : into <intointo@nifty.com>
 ■日付 : 05/4/6(水) 10:56
 ■Web : http://www.geocities.jp/nervalance/
 -------------------------------------------------------------------------
   Javaアプレットをページに貼り付けるとき
APPLETタグを使うとうまくいくのですが、
OBJECTタグを使うとアプレットが表示されません。
使っているブラウザはIE6です。
IE6はOBJECTタグをサポートしてないんでしょうか?
そのあたりをご存じの方がいたら教えてください。
よろしくお願いします

APPLETタグを使った場合(アプレットがちゃんと動く)
-----
<APPLET CODEBASE="file:///C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/" CODE="ShowDocument.class" width="200" height="50">
</APPLET>
-----

OBJECTタグを使った場合(アプレットが表示されない)
-----
<OBJECT CODETYPE="application/java" CODEBASE="file:///C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/" CLASSID="java:ShowDocument.class" width="200" height="50">
</OBJECT>
-----
 ───────────────────────────────────────  ■題名 : Re:Objectタグを使ってJavaアプレットを表示したい  ■名前 : Pid  ■日付 : 05/4/6(水) 22:48  -------------------------------------------------------------------------
   どぞ→http://yupotan.sppd.ne.jp/web/xhtml-multimedia.html#applet-object
 ───────────────────────────────────────  ■題名 : Re:Objectタグを使ってJavaアプレットを表示したい  ■名前 : into <intointo@nifty.com>  ■日付 : 05/4/7(木) 11:19  ■Web : http://www.geocities.jp/nervalance/  -------------------------------------------------------------------------
   Pidさん、レスありがとうございます。
教えていただいたサイトを参考にして以下の記述のように記述したところ
ブラウザ上でアプレットが動きました。

-----
<OBJECT CODETYPE="application/java" CODEBASE="file:///C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/" CODE="ShowDocument.class" width="200" height="50">
</OBJECT>
-----

「CLASSID="java:ShowDocument.class"」を
「CODE="ShowDocument.class"」に修正しました。
言い訳ですると、googleで検索すると結構classid属性を使うように
書いてあるサイトがあるんです。たとえば
http://msugai.fc2web.com/web/tips/object.html
とか。
でもMSDNにはちゃんと「CODE属性=コンパイルされたJavaのクラスファイル名」
って書いてますね。
それにHTMLもブラウザも様々なバージョンがあるわけだから、
他人の環境で動いたからといって自分の環境でそのまま使えるとは限らない
ということがよくわかりました。
調査不足でした。失礼しました。
 ───────────────────────────────────────  ■題名 : Re:Objectタグを使ってJavaアプレットを表示したい  ■名前 : Pid  ■日付 : 05/4/7(木) 12:41  -------------------------------------------------------------------------
    ▼intoさん:
>「CLASSID="java:ShowDocument.class"」を「CODE="ShowDocument.class"」に修正しました。

いえ,object 要素に code 属性は存在しません[*1]。code 属性は applet 要素の属性です[*2]。

MSIE は Java アプレットの実行時に(applet 要素の)code 属性を探します。しかし,object 要素には code 属性が無いので,No.4568 のリンク先では param 要素で code パラメータを作成しているのです。

※なお,DOM の object オブジェクトには code プロパティが存在します[*3]。MSDN にも,object 要素の code 属性は(M$ 独自 HTML から)廃棄されたが,W3C DOM の object オブジェクトに code プロパティが定義されているという書き方になっています[*4]。

>googleで検索すると結構classid属性を使うように書いてあるサイトがあるんです。

それが普通だと思います。C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/ShowDocument.class のパスは合ってますか?

それから,application/java という MIME タイプは IANA に正式登録されていません{*5]。No.4568 のリンク先で application/x-java-vm と接頭辞 x- を付けているのはそのためです。

----------
[*1] http://www.ne.jp/asahi/minazuki/bakera/html/reference/headmisc#object
[*2] http://www.ne.jp/asahi/minazuki/bakera/html/reference/inline#applet
[*3] http://www2u.biglobe.ne.jp/%7Eoz-07ams/prog/dom-ref/HTML/HTMLObjectElement.html#HTMLObjectElement-code
[*4] http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/code.asp
[*5] http://www.iana.org/assignments/media-types/application/
 ───────────────────────────────────────  ■題名 : Re:Objectタグを使ってJavaアプレットを表...  ■名前 : into <intointo@nifty.com>  ■日付 : 05/4/7(木) 14:57  ■Web : http://www.geocities.jp/nervalance/  -------------------------------------------------------------------------
   ▼Pidさん:
> ▼intoさん:
>>「CLASSID="java:ShowDocument.class"」を「CODE="ShowDocument.class"」に修正しました。
>
>いえ,object 要素に code 属性は存在しません[*1]。code 属性は applet 要素の属性です[*2]。

なぜ「いえ」という否定の言葉があるのでしょう。
HTML4.0のobject要素にcode属性がないのは私も調べて知っています。私は単に自分の環境(IE6)ではこのコードでアプレットが動きましたと報告しただけです。
object要素にcode属性があると主張したつもりもありませんし、教えていただいたサイトやJAVAアプレットをObjectタグとclassid属性を使って貼り付けるようにと説明してあるサイトを「間違っている」と言ったつもりもありませんが、何かお気に障るようなことを書いたでしょうか?

>MSIE は Java アプレットの実行時に(applet 要素の)code 属性を探します。しかし,object 要素には code 属性が無いので,No.4568 のリンク先では param 要素で code パラメータを作成しているのです。
>
>※なお,DOM の object オブジェクトには code プロパティが存在します[*3]。MSDN にも,object 要素の code 属性は(M$ 独自 HTML から)廃棄されたが,W3C DOM の object オブジェクトに code プロパティが定義されているという書き方になっています[*4]。

MSDNのダイナミックHTMLのリファレンスではOBJECT要素にCODE属性があるので、私の環境で動いたコードはダイナミックHTMLで書いたつもりはないですが(というかHTMLのバージョンも別に意識していませんが)IEはダイナミックHTMLとして認識しているのかなと思っています。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpisdk/dhtml/references/html/OBJECT.asp

>>googleで検索すると結構classid属性を使うように書いてあるサイトがあるんです。
>
>それが普通だと思います。C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/ShowDocument.class のパスは合ってますか?

classidを使うのが普通なんですか。ということは私の環境が特殊なんですかね。
WindowsXP HOME SP2 + IE6 + JRE1.5のJavaプラグイン という環境で私としてはなんてことはない普通の環境だと思っていたんですが。
パスは合っています。変な言い方ですが、4570に書いたようにこれでアプレットは動いているので合っているはずです。
"dokushuava"というあたりが怪しいと思われたのかもしれないですが、そういうディレクトリ名にしてしまっただけでこれこれで合っています。
#ディレクトリを作ったときに"dokushujava"とするつもりだったのですが間違ってjが1個忘れて変な名前にしてしまいました。
    
 ───────────────────────────────────────  ■題名 : Re:Objectタグを使ってJavaアプレットを表...  ■名前 : Pid  ■日付 : 05/4/7(木) 18:21  -------------------------------------------------------------------------
   えーと,どう反応して良いものやら。

まず本題からですが,

▼intoさん:
> これでアプレットは動いているので合っているはずです。

では,

<object codetype="application/x-java-vm" classid="java:ShowDocument.class" width="200" height="50">
<param name="codebase" value="file:///C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/">
</object>

でどうでしょうか。WinIE の object 要素の codebase 属性の振る舞いは独特なので,タグ内に書かずに param 要素で呼び出します。こちらの WinIE6,Mozilla 1.6 ではこれでうまくいきました。

----------

で,以下は余談というか自己弁護。

>HTML4.0のobject要素にcode属性がないのは私も調べて知っています。私は単に自分の環境(IE6)ではこのコードでアプレットが動きましたと報告しただけです。

私は単に object 要素に code 属性は無いと事実を述べただけです(と言いますか,知っててなおお書きになったのですか (^^;))。

>何かお気に障るようなことを書いたでしょうか?

私,何かお気に障るようなことを書いたでしょうか。

>MSDNのダイナミックHTMLのリファレンスではOBJECT要素にCODE属性があるので、

ですから,それは DOM の HTMLObjectElement インターフェースに code プロパティがあるということで,object 要素に code 属性があるわけではないのです(これは MSDN の書き方が悪いと心から思う)。

>IEはダイナミックHTMLとして認識しているのかなと思っています。

と言うより,IE は最初からスクリーン上の要素をオブジェクトとして配置しているのでしょう。率直に言って,IE が object 要素の code 属性を認識するのは IE の手抜き実装(もしくは「仕様」)です(Mozilla は認識しませんでした。Opera,Konqueror はこれから試してみます)。
 ───────────────────────────────────────  ■題名 : Re:Objectタグを使ってJavaアプレットを表示したい  ■名前 : into <intointo@nifty.com>  ■日付 : 05/4/7(木) 20:15  ■Web : http://www.geocities.jp/nervalance/  -------------------------------------------------------------------------
   ▼Pidさん:
>えーと,どう反応して良いものやら。
>
>まず本題からですが,
>
>▼intoさん:
>> これでアプレットは動いているので合っているはずです。
>
>では,
>
><object codetype="application/x-java-vm" classid="java:ShowDocument.class" width="200" height="50">
><param name="codebase" value="file:///C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/">
></object>
>
>でどうでしょうか。WinIE の object 要素の codebase 属性の振る舞いは独特なので,タグ内に書かずに param 要素で呼び出します。こちらの WinIE6,Mozilla 1.6 ではこれでうまくいきました。

ダメでした。やっぱり私の環境がおかしいんですね。きっと。
codetype属性の値は"application/java"でも"application/x-java-vm"でもOKみたいですが、codebaseをparamタグの方に書くと動きません。
codebaseを相対パスにした場合もobjectタグの方の中に書くとうまくいきますが、paramタグの方に書くとダメです。
4570に書いたコードで動いているのでとりあえずそれでやっていこうかと思います。

>----------
>
>で,以下は余談というか自己弁護。
>
>>HTML4.0のobject要素にcode属性がないのは私も調べて知っています。私は単に自分の環境(IE6)ではこのコードでアプレットが動きましたと報告しただけです。
>
>私は単に object 要素に code 属性は無いと事実を述べただけです(と言いますか,知っててなおお書きになったのですか (^^;))。

まず1つ。HTML4.0のobject要素にcode属性がないのは知ってました。でもそのことと私の質問したことに何か矛盾がありますか?
私が4565で質問したのは
「HTML4.0的に正しいはずのobjectタグとclassid属性を使ってこういうコードを書いたのですがアプレットが動きません。
コードや私の認識に間違っているところがあれば教えてください。」
ということです。くりかえしますが、「object要素にcode属性がない」ことを知っていた上で4565のような質問をすることって変ですかね?
それと、Pidさんは「単に object 要素に code 属性は無いと事実を述べただけです」とおっしゃっていますが、4571にはそのまえに「いえ、」って書かれてますよね。これって否定、「No」っての意味ですよね。
私は4570で「このコードで動きました。」と報告したことに対してPidさんは「No」って言ってるのですよね。それがわからないんです。何を否定されているのかが私にはわかりません。
私が4570で「object要素にcode属性がある」と書いたのなら「No、それは違う」と言われても仕方ないと思います。でも私は「objectタグにcode属性を書いたら動いた。」と書いただけで「動いたからこれが正しいんだ。」なんて言うつもりはまったくありませんでした。
私は4571の「いえ」が4570の内容の中でどこに対する否定なのかなと思って4572を書いたわけです。


Pidさんは私よりHTMLに遙かに詳しいようですし、Pidさんの回答の中の技術的な内容について反論するつもりは全くありません。
「IEで動くコードが正しい」なんて全く思っていません。ブラウザがそれぞれ勝手に独自に新しいタグを追加したりHTMLに合っていないコードを許容して表示するのはやめて欲しいと思っています。すごい昔ですが仕事でCGIを書いて同じコードなのにIEとネスケで挙動が違って非常に困りました。

Pidさんには親切に回答していただいたのに不快な思いをさせたかもしれません。申し訳ありませんでした。
 ───────────────────────────────────────  ■題名 : いえ,のニュアンス  ■名前 : 105  ■日付 : 05/4/7(木) 21:37  -------------------------------------------------------------------------
   こんばんはです。
スレは終わってるような感じですが
見てる人の中には、むずむずしてる人が
いると思いますので(私のことです)
蛇に足を描いてみます。

intoさんに詰寄ってるわけではありません。念のため。

▼intoさん:

>それと、Pidさんは「単に object 要素に code 属性は無いと事実を述べただけです」とおっしゃっていますが、4571にはそのまえに「いえ、」って書かれてますよね。これって否定、「No」っての意味ですよね。
>私は4570で「このコードで動きました。」と報告したことに対してPidさんは「No」って言ってるのですよね。それがわからないんです。何を否定されているのかが私にはわかりません。

「いいえ」「いえ」は「違いますよ」という否定を表す言葉ではありますが、今回の場合は違うニュアンスが含まれているように思います。

▼Pidさん:4571
>いえ,object 要素に code 属性は存在しません

この「いえ,」は

▼intoさん:4570
>教えていただいたサイトを参考にして以下の記述のように記述したところ
>ブラウザ上でアプレットが動きました。

>-----
><OBJECT CODETYPE="application/java" >CODEBASE="file:///C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/" >CODE="ShowDocument.class" width="200" height="50">
></OBJECT>
>-----

>「CLASSID="java:ShowDocument.class"」を
>「CODE="ShowDocument.class"」に修正しました。



教えていただいたサイトを参考にして
「CLASSID="java:ShowDocument.class"」を
「CODE="ShowDocument.class"」に修正しました。

と読み取って
それに対して

あのサイトの内容を参考にしたのなら

アプレットの所在を明示する code 属性は、 <param name="code" value="ファイル名" /> に置き換える。
と参考サイトに書かれているので
CODE="ShowDocument.class"と書くのは変だな。

もしかしたら、どうして参考サイトを提示したのか
伝わってないかもしれないので追記しておこう。

という意味の「いえ,」ではないかと
私105は、Pidさんの心のうちを憶測します。

ということで、何かを強く否定しているわけでは
ないのではないかな〜と思われます。

日本語って難しいねということで。
 ───────────────────────────────────────  ■題名 : Re:Objectタグを使ってJavaアプレットを表示したい  ■名前 : Pid  ■日付 : 05/4/8(金) 2:12  -------------------------------------------------------------------------
   ▼intoさん:
>ダメでした。

うーん,いっそ全部書いたらどうなるでしょう。

<object type="application/x-java-vm" codetype="application/x-java-vm" classid="java:ShowDocument.class" codebase="file:///C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/" width="200" height="50">
<param name="code" value="ShowDocument.class">
<param name="codebase" value="file:///C:/programs/eclipse/dokushuava/ch13/ShowDocument/bin/">
</object>

>それと、Pidさんは「単に object 要素に code 属性は無いと事実を述べただけです」とおっしゃっていますが、4571にはそのまえに「いえ、」って書かれてますよね。これって否定、「No」っての意味ですよね。

あー,えーと,話題の導入時に「や」「にゃ」とか無意味な擬音で調子を整えるのが私の口癖です。深い意味はありません。申し訳ない。いっそ「Yeah!」とか「Ja!」と解釈して下さい (^^;)。

> でも私は「objectタグにcode属性を書いたら動いた。」と書いただけで「動いたからこれが正しいんだ。」なんて言うつもりはまったくありませんでした。

仰ることはよく分かります。ですが,他の方々,あるいは過去ログとして将来利用される方々が「あれ,object 要素に code 属性なんてあったかな?」と誤解を抱きそうな気もしたので,No.4571 では「code 属性は無い」を強調する結果になりました。

不躾で無配慮な書き方をしてしまい,申し訳ありませんでした。以後気を付けます。

# 105 さん,ありがとうございます。言葉って難しいですね(それが逆に楽しいという面も (^^;)…すみません)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 987