人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下のような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 -->

●質問者: katsube
●カテゴリ:ウェブ制作
✍キーワード:HTML IE6 TOP WindowsXP ほげほげ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● gio
●20ポイント

http://www.hatena.ne.jp/

はてな

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

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


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

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


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

◎質問者からの返答

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

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

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

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

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


2 ● sight
●20ポイント

こんにちは。

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”>

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

◎質問者からの返答

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

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


3 ● izayoimizuki
●50ポイント

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%以上のシェアを持つブラウザにおいて

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

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

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

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

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

◎質問者からの返答

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

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ