プロが教える店舗&オフィスのセキュリティ対策術

フレーム分割のない普通の画面からのリンクで、
あるフレーム(2つあるフレームの片一方とか)の
ある場所を表示させたいと考えて
いるのですが、その場所の指定の仕方がわかりません。
普通にアンカーをつけるのならわかるのですが・・・。

教えてください。

A 回答 (4件)

HTMLのみで作るのなら、初期ページ違いのフレームセットを


アンカーの数だけ作る以外の方法は思いつきませんが、
JavaScriptを使えば可能です。
まずHTMLファイルを4つ(a~d)用意してください。
a.html、b.htmlにはそれぞれ下記のソースをコピペしてください。

--------------- a.html ---------------
<HTML>
<HEAD><TITLE>フレームなしページ</TITLE>
<SCRIPT language="JavaScript">
<!--
sendURL = "b.html";
function sendData(anc){
sData = escape(anc);
location.href = sendURL + "?"+sData;
}
//-->
</SCRIPT>
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
<P><A href="#" onClick="sendData('#1')">アンカー1</A>
<P><A href="#" onClick="sendData('#2')">アンカー2</A>
</BODY>
</HTML>

--------------- b.html ---------------
<HTML>
<HEAD><TITLE>フレームセット</TITLE>
<SCRIPT language="JavaScript">
<!--
rData = unescape(location.search).substr(1,9999);
rightfrm = "d.html" + rData;

document.write('<FRAMESET cols="20%,*" frameborder="YES" border="2" framespacing="2" rows="*"><FRAME name="leftFrame" scrolling="NO" noresize src="c.html">');
document.write('<FRAME name="mainFrame" src="' + rightfrm + '"></FRAMESET>');
//-->
</SCRIPT>
</HEAD>
</HTML>


フレーム無しのページa.htmlからフレームセットb.htmlにリンクします。、
フレームセットの右側(d.html)のアンカー1、2へそれぞれジャンプできたと思うのですが、どうでしょう?
確認した限りでは、Windows 上では問題なく動作します。
Mac の場合、ネスケでは動作が安定しませんでしたが、これは私の記述が未熟なせいでしょう。
    • good
    • 0

すみません。

下の回答の補足です。
a.htmlのリンクの部分に「;return false」を書き足したらMacのネスケでも大丈夫でした。(確認した限りでは、ですけど。)
↓こうなります。
<A href="#" onClick="sendData('#1');return false">アンカー1</A>

後、c.htmlとd.htmlはフレームセットb.htmlの中に表示されるファイルですから、c.htmlをメニューのページ、d.htmlをメインのアンカーを含んだページだと考えてください。
説明不足でした。
    • good
    • 0
この回答へのお礼

ありがとうございました。
JAVAは使ったことがないのですが、がんばってみます。
時間がなくて、ここまでとさせていただきますが、
どうやら、おかげさまで、できそうです。

お礼日時:2001/09/20 08:49

つまり、フレームではない普通のページから、


フレームのページに飛び、尚且つそのフレームのなかのページが
一番上の部分から表示されるのではなくて、
ある一部分(例えばページの真中あたりとか)が表示されるようにしたいのでしょうか?

その場合はフレームを定義しているHTMLファイルのところに書き込む
URLを以下のようにしてみて下さい。

<FRAME SRC="http://aaa.bbb.ccc/xxx.html#efg" NAME="ddd">

↓                    ↑ファイルの拡張子の後に#***のよ
↓                     うに半角英数字で名前を付けて下
↓                     さい


<A NAME="egf">←ページの最初に表示させたい部分のすぐ前につける(終止タグ不要)


本来アンカータグ同士で使うんですが・・・
フレームタグとアンカータグの組み合わせでも、
なぜかうまくいきます(苦笑)

動作確認環境
Win98&IE5.5
win95&NC4.75

この回答への補足

ありがとうございます。
質問の意味はmakimaki7さんのおっしゃる通りです。私の説明が足らずにすみません。
しかし、この場合だと、そのフレームを開くときは必ず、その"efg"の所にいきますよね。
実は、A(フレームなし)という画面のメニューからB(2つのフレームC、D)に飛び、C画面にはAと同じメニューを(違うページを用意しますが、)D画面にはその内容を表示したいのです。
なので、A画面から、D画面に複数のアンカーをつけて、その内容に飛ばし、かつ、C画面にメニューを引き続き表示していたいのです。あー、上手く説明できません!がんばってみてはいるのですが。
・・・すみません。

補足日時:2001/09/18 08:56
    • good
    • 0

「あるフレームのある場所」という表現がよくわからないのですが・・・


どこかに、仮にページをアップしていただいて、
「こっちからこっちにリンクさせたい」みたいにしていただければ
回答できるかもしれません。
あるいは、実際にフレームを使っている(できれば個人じゃない)
ページを指定していただいても結構ですが。
    • good
    • 0
この回答へのお礼

社外秘のHPを制作してまして、個人ではHPを作ったことがなく、アップできる環境にないので・・・すみません。

お礼日時:2001/09/18 08:46

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