• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:XHTML1.1に於いてのobject要素の操作)

XHTML1.1でのobject要素の操作方法

このQ&Aのポイント
  • XHTML1.0ではiframeを使用してリンク内のページを表示する方法がありましたが、XHTML1.1ではobject要素を使用することができます。
  • しかし、object要素ではリンククリックしても新しい窓で開かれてしまうため、以前のようなフレーム構造を再現することはできません。
  • JavaScriptを利用してフレーム構造を実現する方法を探しているが、知識や参考書が限られているため困っている。助言をいただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • n_a_o_11
  • ベストアンサー率76% (10/13)
回答No.9

外部サイトのflashやmovieは表示出来るので、 classidで外部サイトのhtmlが表示出来るかと 思たんだけど。 classidの載ってるサイトで、 IE6用なんて書いてあったけど、IE6も classidを使わなくても表示出来る。 <script> function changeObj(fname){ document.getElementById("objarea").innerHTML = ('<object data=" '+fname+' " type="text/html" width="80%" height="400"></object>'); } </script> <div id="objarea" style="position:absolute;left:100px;width:800px;height:400px"> <object data="0.html" type="text/html" width="800" height="400"> </object> </div> <div id="ul"> <li><a class="p1" href="#" onclick="changeObj('./1.html');">1.html</a> <li><a class="p2" href="#" onclick="changeObj('./2.html');">2.html</a> <li><a class="p3" href="#" onclick="changeObj('./3.html');">3.html</a> <li><a class="p4" href="#" onclick="changeObj('./4.html');">4.html</a> </div> cssで位置決めすれば、好きな所に配置出来るから。 http://www.geocities.jp/n_a_o11/obj.html

abacabu
質問者

お礼

度々ありがとうございました。私最近firefoxとかsafariとかダウンロードして使ってるんですが、そちらでは普通に外部(さっきのyahoo)も普通に見られました… 一体いつになったらIEはまともに対応するんでしょうか… 私の環境ではclassidのあのコードみたいなのを入れないと確か・・・ 無地画面だったようなきがします。 classid使ってやっと画面が出た(インラインは表示されていたが、真っ白画面から目的ページが表示)気します。色々とありがとうございました。

abacabu
質問者

補足

IE9ではしっかりpbject要素を普通に表示できるようになっている事を祈って この質問を締めたいと思います。ありがとうございました。

その他の回答 (8)

  • n_a_o_11
  • ベストアンサー率76% (10/13)
回答No.8

ご免間違えた。 http://www.geocities.jp/n_a_o11/obj2.html classidとpでやってみたけど、自分のIEで表示されない。

abacabu
質問者

お礼

外部はやはり表示出来ないのですね。 私の画面でもyahooは表示されなくて、1で赤2で黄色画面が表示され、 上記グラデーションをマウスオンするとその色に背景が変化しました。 あやふやな書き込みをしてしまいすいませんでした…

abacabu
質問者

補足

で、なんですが、その自分がアップロードしたページファイルだけを対象に、 その画面に出すにはオンクリックでやればよいということでしょうか? 非常に参考になりました!しかも私の求めていた情報です。 大変ありがとうございました。

  • n_a_o_11
  • ベストアンサー率76% (10/13)
回答No.7

classidでも外部のサイトは表示出来なかったけど。 XP IE8 其れで、下記で確認して見て。 http://www.geocities.jp/n_a_o11/obj.html アクセス時はOKWave Yahooと1.htmmlと2.html どのように見えるか。

abacabu
質問者

お礼

書き込みありがとうございます。すいません書くのを忘れていたのですが…一部補足ですが、objectを使ってこの方法だとアップロードで同一ディレクトリ内にある別のページ画面は読み込めますが全く違うサイトのページは読み込めません。 すいません、言い方が曖昧でした… ですが同一ディレクトリ内というか自分のページはちゃんと表示されます。

  • n_a_o_11
  • ベストアンサー率76% (10/13)
回答No.6

IEはobjectで外部サイトのページは表示出来ないよね。 IEはobject 内のdataの書き換えだけでchange出来ない。 他のブラウザはWINもMacも出来るけど。 IEの内部のページの変更は<object ~></object>を書き換える。 > object自体を、firefox、safari、opera
辺りですと表示出来ませんでした…
 > しかもIEでかつどこかのサイトに落ちていたclassidという属性の
 > 英語と数字の集まりを入力しないとIE8でも表示しませんでした classidでIE8で外部サイトのページを表示したと言う事? classidを使うと他のブラウザは表示出来なくなるよね。 もしclassidでIE8で外部サイトのページを表示したのならば、 ソースを見せてくれる?

abacabu
質問者

お礼

回答ありがとうございます。一応他人様の知識でですがここまではきました。 ちなみにclassidは不変です。替える必要は無いみたいです。 そのままで問題なかったので。 ここからさらに外部を…と思ってしまったのでかなり悩みました。 なかなかfremeの様には扱えないようですね…

abacabu
質問者

補足

自分なりに調べた結果他人様のサイトでこう言う物を見つけました <p> <!--[if IE]> <object type="text/html" classid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13" data="./ph.html" width="285px" height="200px"> <p>non object</p> </object> <![endif]--> <!--[if !IE]> <--> <object type="text/html" data="./ph.html"> <p>non object</p> </object> <!--> <![endif]--> </p> これにて私のwin7IE8環境で外部データを只表示する事は出来ています。 逆に言うとfirefoxとかだとこのままだとなんだか表示されません。 重要なのが<p></p>とかで全体を囲う。あとはIE用のcassidです。 classid無いだけでさっぱり駄目です。さらにclassidあっても <p></p>で囲わないと表示されません。という状況です。

回答No.5

javascriptで外部のhtmlを読み込むことは出来ます。 が、しかし、所詮javascriptなので検索エンジンには、 外部のhtmlの内容は認識されません。 SEO的によろしくないということになります。 ですので少々文字量が多いからといって、 外部ファイルにして、javascriptで読み込むというのはいかがなものかと思います。 管理や更新の問題でやっぱ外部ファイルにしたいんだけど。というときは、 phpなどのサーバーサイド言語を使います。 サーバーサイド言語なら検索エンジンに認識されます。 一番手っ取り早いのは外部ファイル化しないでタブ化するのが楽。

abacabu
質問者

お礼

回答ありがとうございます。 なるほど、JavaScriptだとそういう弊害もあるんですね。 PHPですか。perlはちょっと勉強しようと思って参考書あるんですが そっちで頑張ってみます。 何となく色々な利用の可能性がobjectにはあるのかな?とおもって そうなら上手く使えるようになりたいと思って色々がんばっております。 ありがとうございました。 サーバーサイドでも色々調べてみます。

abacabu
質問者

補足

軽~く齧った程度ですが、HTML5ではJavaScriptとHTMLの組み合わせで将来的に色々な事が出来る様になるらしい…(曖昧ですいません)ので、 色々とJavaScriptで対処していく方向の方がよいのかな?とも思っていました。 FlashやSilverlightもJavaScriptで代替できるようになり、Flashなどが 要らなくなるらしいのです。まぁAdobeさんは大反対らしいんですが・・・ こんな話をネットでみたもので、ちょっと色々いじってみようかとおもっています。

回答No.4

こういう仕組みの時ってobjectタグって使わないと思うんですよね。 普通は「タブ切り替え」という仕組みを使います。 http://www.0yen-coding.com/js-demo/demo/css04.html

abacabu
質問者

お礼

何となくurl指定すると外部も行けそうな気もするんですがあくまで同一ページ内の記述の入れ替えだけですか?ほとんどJavaScriptの知識が無い物ですいません。回答ありがとうございました。

abacabu
質問者

補足

度々ありがとうございます。 なるほど…こういう方法があるのですね。 ですがその改変文字列がページ1枚分の量になった場合はやはり 無難にframeなどで別ページを読み込むのがベターなんですかね? それともこれって外部ページも出力できますか? 試せばいいんですが…どうでしょうか?

回答No.3

何を実現したいのかもう少しはっきりと説明してもらえますか? http://www.0yen-coding.com/test/object01/ こう言うことですか? -------------------------------------------------- ・Aをクリック →Aの内容が<object>...</object>の中に表示する。 ・Bをクリック →Bの内容が<object>...</object>の中に表示する。

abacabu
質問者

お礼

少々お礼が遅れて申し訳ありませんでした…様はそういう事が知りたいです。 target属性が使えないので、何を使うと実現できるのかがさっぱり分からなかったので、これはJavaSciptか?と安易ではありますが質問しております。 たった4,5日間、1日6時間位いじってもうへろへろです… 何となくarea属性を使うのかとかも考えましたが違う様な感じですし… 頭がおかしくなりそうです… タグの基本的な事を理解していない為に怒るのかもしれませんが… 出来ればもう少しよろしくお願い致します

abacabu
質問者

補足

そういう事です!!良くフレームレイアウトにある、メニューの画面と ディスプレイとして使う画面が有り、その2個の別の画面を メニュー側のリンクをクリックするとobject今まで出ていたページアドレスでなく 新しいリンクのアドレスを表示させる方法が知りたいです。 出来ればどのような方法で実現できるのか教えて下さい。

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.2
abacabu
質問者

お礼

またまたありがとうございます。 こちらの方は殆どのサイトのJavaScriptを質問前に試しましたが、結果、 フレーム要素ではなく、只ページ上にインライン要素としてスペースを作り、 別の情報、HTML、img、その他色々な物を出せるみたいですので、 今後はこう言う方面での使用が期待される物の様です。 やはり勉強でもして開発でもしないとむりなんですかね… 恐らくJavaScriptを使えば可能かと思ったもので。 やはりJavaScriptでDOM(というのがある位の知識です)を 操作する事により実現する可能性があると思います。 たぶん…ありがとうございました。 もうちょっとまってみます。 あ・・・私がIE8という環境なのが原因なんですかね?? とりあえず私の環境ですと、object自体を、firefox、safari、opera 辺りですと表示出来ませんでした… しかもIEでかつどこかのサイトに落ちていたclassidという属性の 英語と数字の集まりを入力しないとIE8でも表示しませんでした… この要素ってまだまだ使えないのでしょうか? …お礼なんだかなんだかよくわからなくなりました ありがとうございました

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1
abacabu
質問者

お礼

回答ありがとうございます。 この検索で見る限りHTML5においてはa要素およびarea要素は無くならず、 target属性もiframeの有用性から廃止される可能性がまずない(予定)のようで わざわざobject要素で無理やり使用する事も無いようです。参考になりました。 ありがとうございます。

関連するQ&A