以下のようなHTMLがございます。

top.htmlからinc.htmlをiframeで呼び出し、iframe内の「下に移動」のリンクをクリックすると、top.html毎ページが移動してしまいます。iframe内だけの移動にする手段はないでしょうか?
WindowsXP IE6.0 SP1

<!-- top.html -->
<h2>ほげほげ</h2>
〜色々と文章〜
〜色々と文章〜

<iframe src=”inc.html” width=”450” height=”300”></iframe>
<!-- /top.html -->


<!-- inc.html -->
<a href=”#anc”>下に移動</a>
〜色々と文章〜
〜色々と文章〜
<a name=”anc”></a>
<!-- /inc.html -->

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:gio No.1

回答回数236ベストアンサー獲得回数0

ポイント20pt

ブラウザがサポートしているならば、デフォルトの

動作で、ご期待の動作をするはずです。


が、強制指定するなら以下のようになります。

<A HREF=”#anc” TARGET=”_self”>下に移動</A>


他のブラウザでどうなるか試してみては如何でしょうか?

id:katsube

ご回答ありがとうございます。

_selfを試してみましたが、やはり呼び出しもとのHTML(top.html)も引きづられてしまいます。

ご指摘のようにブラウザ固有の問題かと思い試してみたところFireFox1.0, NN7.1も同様の動作をします。

どうしたものでしょうか(^^;

まさか動かないとは思わなくて苦戦しております。

2005/05/09 15:03:10
id:sight No.2

回答回数69ベストアンサー獲得回数1

ポイント20pt

こんにちは。

iframeに名前をつけておいて、inc.html内のリンクで target指定してください。


サンプル:

<!-- top.html -->

<h2>ほげほげ</h2>

~色々と文章~

~色々と文章~


<iframe name=”frame_name” src=”inc.html” width=”450” height=”300”></iframe>

<!-- /top.html -->


<!-- inc.html -->

<a href=”#anc” target=”frame_name”>下に移動</a>

~色々と文章~

~色々と文章~

<a name=”anc”></a>

<!-- /inc.html -->


また、inc.html内の各リンクでtargetを指定するのが面倒な場合は、inc.htmlのhead部に

<base target=”frame_name”>

と、リンク先のターゲットのベースを指定してください。

id:katsube

ありがとうございます。これは思いつきませんでした!

先ほどtargetで自分自身を指す方法を試してみたのですが、状況は変わらず...。IE6.0, NN7.1, FireFox1.0も同様の動作でした。

2005/05/09 19:39:40
id:izayoimizuki No.3

回答回数302ベストアンサー獲得回数0

ポイント50pt

IDリンクをすると状況に応じて結果が異なります。


もしもinc.htmlのみがスクロールバーを必要とする場合

top.htmlはスクロールされることはありません。


もしもtop.htmlのみまたは両方がスクロールバーを必要とする場合

状況に応じて以下の2つの結果のいずれかになります。


(1)iframeが完全に表示されるような位置にスクロールされている場合

inc.htmlのみがスクロールされる

→top.htmlがスクロールバーを必要としない場合の動作と同じ。


(2)iframeが完全に表示されないような位置にスクロールされている場合

iframe全体が表示されるようにスクロールされる

→明示的にどのiframeに対して操作を行ったかユーザーに知らせ混乱やフィッシング等の被害を防止する目的


の(2)の場合に該当しているのではないでしょうか。

(2)の場合に該当しているとすればMSIE,

Gecko系(Camino,Firefox,Mozilla,Netscape等),

Opera,KHTML系(Konqueror,Safari等)等の

0.01%以上のシェアを持つブラウザにおいて

この動作を阻止する手段はありません。

またこれを阻止することができるとすれば

それはある意味セキュリティー問題となり

ベンダーとすれば早期に修正しなければならない案件となります。

よっておそらくお望みの動きはさせることができません。

id:katsube

回答ありがとうございます。

こちらでも色々と試しておりましたが、両方においてスクロールバーが表示される際にこの現象が起こることがわかりました。

そうですか、できませんか。

JavaScriptを使って、アンカーの座標を取得し強制的にスクロールする方法を今、試していますので、これが実現できれば、この方法でいきたいと思います。

ありがとうございました。

2005/05/10 23:14:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません