プロが教えるわが家の防犯対策術!

口で説明するのは面倒くさいので以下に例を作りました。

-t1.html-
<html>
<a href="t2.html#b" target="ifmain">t2-b</a><br>
<a href="t2.html#c" target="ifmain">t2-c</a><br>
<a href="t3.html#b" target="ifmain">t3-b</a><br>
<a href="t3.html#c" target="ifmain">t3-c</a><br>
<iframe name="ifmain" src="t2.html" height="400" width="300"></iframe>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
</html>

-t2.html、t3.html-
<html>
<table>
<tr><td height="300"><a name="a">a</a></td></tr>
<tr><td height="300"><a name="b">b</a></td></tr>
<tr><td height="300"><a name="c">c</a></td></tr>
</table>
</html>


t1.htmlを実行して頂ければわかるのですが、
t1からIFrame内部にアンカーで移動させる場合、
IFrame内部のスクロールが、なぜか呼び出し元
(windowオブジェクトで言えば、topとかparentの方)が
なぜか移動してしまいます。
呼び出し元のリンクに
onclick="ifmain.location.href=this.href;top.scrollTo(0,0);return false;"
というようなものを組み込んでもうまく動作しません。
(IE、FireFox両方共に)

なんとか回避する術はないでしょうか?
IFrame内部だけ移動すれば十分ですので。

A 回答 (1件)

もっとシンプルな方法があるのかもしれませんが、javascriptで強引に。

一瞬画面が移動するのがいやな感じです。

<html>
<div style="height:300px"></div>
<a href="javascript:void(0);" onclick="var t=document.getElementsByTagName('body')[0].scrollTop;document.getElementById('orz').src='t2.html#b';document.getElementsByTagName('body')[0].scrollTop=t;">t2-b</a><br>
<iframe id="orz" name="ifmain" src="t2.html" height="400" width="300"></iframe>
<div style="height:1200px"></div>
</html>
    • good
    • 0
この回答へのお礼

ありがとうございます。
ページ内スクロールを実行することで避けることができました。

どうもセキュリティ対策でどのブラウザでも同じ仕様(フレーム内部ではなく全体が動く)のようですね。

お礼日時:2006/10/18 02:45

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