人に聞けない痔の悩み、これでスッキリ >>

objectタグ内にHTML文章を埋め込んだ場合、埋め込んだHTML内のリンクをクリックするとリンク先のページがobjectタグ内に開かれます(当然ですが^^;)。
この場合のリンク先をobjectタグ内ではなく、そのobjectタグが記述されているウィンドウ(親ウィンドウ)に開くことは可能でしょうか?
リンクのtarget属性を"_top","_parent"に指定してみましたが期待通りの結果にはなりませんでした。

もしご存じの方がいましたら教えてください。
よろしくお願いします。

追記:インラインフレームを使う予定は今のところ考えておりません。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

どうやらIEのバグの様です。


mozilla系ブラウザでは正常に動作しますし、W3C勧告を見る限りでもIE側の問題に思えます。

色々と試してみましたが、HTMLではどうにも改善できませんでした。


ただ、Javascriptを利用すれば回避が可能でしたので、Javascriptを利用した回避方法を下に書きます。

1)トップウインドウに、次のスクリプトを追加する。
<script type="text/javascript">
<!--
window.name = "top_frame";
// -->
</script>
(ウィンドウに名前を付けます)

2)リンクが存在する元ページに、次のスクリプトを追加する。
<script type="text/javascript">
<!--
function framemove() {
window.open("framemove.html","sub");
}
// -->
</script>
(スクリプトからOPENしないと、CLOSEする時に確認ダイアログが開いてしまいます。)

3)リンクタグを次の様に変更する。
<a onclick="framemove()" href="LINK.html" target="_top">リンク</a>
(LINK.htmlは、リンク先のURIを書いてください。target 及びhrefは、javascript非対応またはjavascriptを無効にしているブラウザへの対応の為です。javascript 対応ブラウザには冗長する結果となります。)

4)framemove.html を、次の内容にする。
<script type="text/javascript">
<!--
window.open("LINK.html","top_frame");
window.close();
// -->
</script>
(最初に名前を付けたウィンドウに、本来表示したいURIを表示させます。その後、このウィンドウを閉じます。)

これで動作すると思います。ただ、この方法だとLINK.html 以外のページに対して同様にリンクを貼りたい場合、その数だけframemove.htmlと同じ物を作らなければならないという問題が有りますが…(T-T

この回答への補足

> window.open(location.search + ".htm","top_frame")
「location.search」では"?"も含まれてしまうので「location.search.substring(1)」ですね。^^;

補足日時:2005/03/05 14:57
    • good
    • 0
この回答へのお礼

> どうやらIEのバグの様です。
動作確認をしたブラウザを記述し忘れたのにわざわざ調べていただいてありがとうございます。

2)に記載されている
> window.open("framemove.html","sub");
の「sub」を「top_frame」に設定すれば親ウィンドウで開けそうな気がしたのですが、駄目みたいですね...(実際動かしてみました)
不思議です。

> これで動作すると思います。ただ、この方法だと
> LINK.html 以外のページに対して同様にリンクを貼り
> たい場合、その数だけframemove.htmlと同じ物を作ら
> なければならないという問題が有りますが…(T-T
この問題に対してはURIにsearchかhashでリンク先のファイル名を埋め込み、4)で
window.open(location.search + ".htm","top_frame");
とすることで解決させようと思います。
問題はIEでJavaScriptを切っている場合ですが...注意書きなどを書いて対処するしかなさそうですね。

詳しく調べていただき、本当にありがとうございました。

お礼日時:2005/03/05 12:38

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qjavascriptでタグのリンクを変えたいのですが

<object>タグで指定したリンクをjavascriptで変えたいのですが・・・。
以下のように記述しているのですが上手くいきません。

<html>
<head>
<script langage="javascript">
function a(){
obj=document.getElementById("Link");
obj.getAttribute("data")=c.html;
}
</script>
</head>
<body onLoad="a()">
<object data="d.html" id="Link" width="700" height="500"></object>
</body>
</html>

どなたかご教授宜しくお願いします。

Aベストアンサー

ブラウザによって若干違うみたい。
FF3.5、Opera10ではそのままでちゃんと表示内容が変わるようです。
IEは新しくオブジェクトを定義し直さないと、読み込んでくれないみたい。
(dataの値はちゃんと置き換わっているようですが)

とりあえず、cloneを作って置き換えればなんとかなりそう…
 var obj = document.getElementById("Link");
 var cln = obj.cloneNode(true);
 cln.setAttribute("data","c.html");
 obj.parentNode.replaceChild(cln, obj);

Qに入れたテキストが表示されない

こんにちは。

HTMLファイルを作成しているのですが、
<OBJECT>~</OBJECT>に埋め込んだテキストファイルが
表示されません。

フレーム【左|右】を使用していて、左にあるリンクをクリックすると、
右に abc.html が表示されてその中にxyz.txtを<OBJECT>タグで
埋め込んでいるという設定です。
ところが、何度クリックしても右側にはフォームの様な物が
表示されるだけで文面が表示されないのです。
(ただ、ソースからは文面が確認できます。)

ちなみに、左のリンクを「新しいウィンドウで開く」で開くと、
一瞬abc.htmlが開くのですがすぐxyz.txtにリダイレクト(?)されてしまいます。

なぜ文面が表示されないのでしょう?
どなたかご教示願います。
情報が不足していればご指摘ください。
よろしくお願いいたします。

Aベストアンサー

実験してみましたが重さについてに制限はないように思います。
約6Mbのtxtで読込みしてみました。
時間はかかりましたが、表示はされました。

ドメインの違う(別サーバーにある)txtの読込みもやってみましたが
こちらも問題なく表示されました。

ということで理由はわかりません。

ソースでは内容が表示させるとうことは、
ファイルへのアクセスは成功してる訳ですから
あとはブラウザの解釈と表示の問題ですよね。

内容がテキストでも拡張子が.txtでなく、別のもの(log、ini)などはうまく解釈しないようです。

あとは失礼ですが、もういちどソースの記述をよく
確認してみてみたら如何でしょうか。

Qフォームで同じ複数のnameで違うvalueの送信

始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは
一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、
phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、
どうすればいいのでしょうか?・・・以下タグです。
昨日から、ここから先に進めません。。
先輩方助けてください、本当によろしくお願いします。

<form action="http://hoge.net/hoge/hogecheck.php" method="post">
<input type="hidden" name="site" value="hoge">
<input name="id" type="text" id="idform" maxlength="10" />

<input type="hidden" name="kin" value="3000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="5000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="10000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="20000">
<input type="image" src="buybtn.gif" />

</form>

始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは
一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、
phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、
どうすればいいのでしょうか?・・・以下タグです。
昨日から、ここから先に進めません。。
先輩方助けてください、本当によろしくお願いします。

<form action="http://hoge...続きを読む

Aベストアンサー

No.2の回答者です。
スミマセンm(__)m、Javaでしたね。PHPで書いてしまいました。。。

Java だったらこれで取れます。(HTML側の修正は不要です。)
String[] kin= req.getParameterValues("kin");

QHTML5 iframe の代わり

HTML5でiframeが認められなくなりました。
今まで下記のように

ボタン1ボタン2ボタン3ボタン4ボタン5ボタン6
<旧iframe></旧iframe>

ボタンは表示し続け下にボタンに応じたページを
表示させたい場合一般的にどうすればよいのでしょうか?
javascriptに頼らざるをえませんでしょうか?
皆様のよきご回答をお待ちしております。

Aベストアンサー

><li>のリンクをクリックすると下の内容が変わるのはどういう仕組みなのでしょう

 ブラウザの表示メニューから「スタイルシートなし」を選択してみたら、極めてシンプルなHTMLだと言うことがわかると思います。
 単純にページ内アンカーに飛んでいるだけです。

 HTML5では、HTML4.01以上に、文書構造に従ったマークアップが求められています。実はHTML4.01もそうであったが、
「DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )」

 しかし、その部分はまったく守られていなかったために、HTML5では、文書構造を示すタグが追加されたにすぎません。!!!!

 ソースを見られてもお分かりのように、スタイルシートを除けば、わかりやすいマークアップがされています。あなたにも検索エンジンにもわかる。

 デザイン、どのように見せるかと、文書構造は独立して考えるべきです。まず、デザインは後回しにして、HTMLの基本をしっかりと学んでください。HTML5はまだ勧告の段階ではありませんから、HTML4.01strictを身につけること。
★はじめてのWebドキュメントづくり ( http://www.asahi-net.or.jp/%7Esd5a-ucd/www/ )
 とか。・・・HTML4.01ですが、HTML5は、HTML4.01strictの改訂版です。transitinalなんて知らなくて良い。

 その後、スタイルシートを学んでください。

><li>のリンクをクリックすると下の内容が変わるのはどういう仕組みなのでしょう

 ブラウザの表示メニューから「スタイルシートなし」を選択してみたら、極めてシンプルなHTMLだと言うことがわかると思います。
 単純にページ内アンカーに飛んでいるだけです。

 HTML5では、HTML4.01以上に、文書構造に従ったマークアップが求められています。実はHTML4.01もそうであったが、
「DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。 ( http://www.a...続きを読む


人気Q&Aランキング