- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DOCTYPE宣言を変更するとjavaが機能しない)
DOCTYPE宣言の変更でjavaの機能が停止する件について
このQ&Aのポイント
- DOCTYPE宣言を変更すると、ミスティーネットさんの「JavaScript 活用編 ポップアップメニューの表示」のサンプルが動作しなくなる件について質問です。
- 「http://java.misty.ne.jp/popup_menu.html」で提供されているサンプルは、DOCTYPE宣言を「<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">」に変更すると、ポップアップメニューが固定表示され、同じ位置にしか表示されなくなるようです。
- この問題は、XHTMLでは機能しないため起こるものであり、javascriptの記述を変更しても解決することはできません。詳しい方からのアドバイスをお待ちしています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ご提示のサンプルを追いかけてみましたが、問題はこの部分でした。 style='position:absolute;top:" + h + ";left:" + w + ";' 直すとしたらこのような感じ。数字の末尾に単位 px をつけています。 style='position:absolute;top:" + h + "px;left:" + w + "px;' CSS で長さや位置を示す際は、必ず単位をつけなければならないのですが、 HTML は数値だけの場合はピクセル(px)を想定するようです。 が、XHTML は厳格に書式を指定しないとエラーとする、が信条ですので書式エラーと見なして無視されます。 ゆえに位置がみな同じところに表示される様でした。 それにしても、このサンプルの内容ですが... 正直いけてないので模倣するのは止めた方がよろしいかと思います。 ブラウザ互換性とか、もうちょっと汎用的に利用できるようにするとか... というわけで jQuery とか如何ですか?
その他の回答 (1)
- lupin-333333
- ベストアンサー率31% (294/933)
回答No.1
>DOCTYPE宣言を変更するとjavaが機能しない あたりまえだ。JavaScriptをゼロからまなびなおすこと。と言うより、マークアップランゲージから学んだほうがいいでしょう。SGML , XML HTMLなどのことです。 それぞれのテキストの一章めを読めば、わかってしまうようなことです。
お礼
Ogre7077さん。 指摘された箇所を直したらうまく動作いたしました。 丁寧な解説ありがとうございました。 >正直いけてないので模倣するのは止めた方がよろしいかと思います。 なるほど、jQueryを使ったメニューはおしゃれなものが多いですね。 そちらのほうを探してみたいと思います。