OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

(再)”フレームhtml”にリンクを張った場合、同時にそのフレームの中身まで指定する方法

  • すぐに回答を!
  • 質問No.174655
  • 閲覧数66
  • ありがとう数2
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 66% (12/18)

 ”フレームhtml”にリンクを張った場合、同時にそのフレームの中身まで指定することってできるのでしょうか?
 リンク元のページ(フレーム未使用)を「contents.html」とします。
このページには、「自作イラスト」を紹介するページへのリンクと、「デジカメの写真」を紹介するページへのリンクを作ったとします。
 「自作イラスト」、「デジカメの写真」両ページとも、フレームを活用した2分割のページです。
「自作イラスト」は、「a01.html」「a02.html」で構成され、
「デジカメの写真」は、「b01.html」「b02.html」で構成されているとします。
 そして、フレームページは「frame.html」です。

「contents.html」
「frame.html」
「a01.html」
「a02.html」
「b01.html」
「b02.html」

 上記のhtmlファイルは、すべて同一パスに存在するとします。
 フレームページは一つだけです。

 以上を踏まえていただいた上で、もう一度ご質問させていただきたいのですが、

 「contents.html」から、「自作イラスト」へのリンクをクリックした時に、「frame.html」に「a01.html」「a02.html」という構成で表示させ、「contents.html」から、「デジカメの写真」へのリンクをクリックした時に、「frame.html」に「b01.html」「b02.html」という構成で表示させることはできるのでしょうか?
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.5
レベル7

ベストアンサー率 41% (10/24)

ブラウザのアドレスバーの内容書き換え・・・というのは、
たぶん。無理だと思います。値を取得するだけならできそうですけど。
かなりできそうなんですけどね。お気に入り、ということを考えると、
frame.htmlを呼び出さないと駄目ですよね。
今までのは、サーバー上にないページをJavaScriptでつくっていたので。。

いろいろ試していたら、こういう方がいいんじゃないかなって思ったのを、
載せてみます。少しシンプル?になったかな?
判定して、とやろうと思ったんですが、止めました。(上手く動かなかった。。)

ソースを見ていただければ分かると思いますが、
一度、frame.htmlで、ページを読み込んでから切り替えます。
オフラインとオンラインではだいぶ動作が違うと思います。
ので、読み込むのは、軽いページ(contents.htmlへのリンクだけとか)
がイイと思いますが。

frame.htmlにジャンプして、その内容を書き換える。という一連の動作、
はできませんでした。またしても新しいウィンドウが開きます。

最初からフレームを使ったページがあって、他の部分を複数変える
というのなら簡単にできるんですけどね。。。

■contents.html
======================================================================
<html>
<head>
<title>contents</title>
<META http-equiv="Content-Type" content="text/html; charset=shift_jis">
<META http-equiv="Content-Script-Type" content="text/javascript">
<script language="JavaScript">
<!--
function fchange(f1,f2,ttl)
{
ya5 = window.open("frame.html","_blank");/*_topにするとたぶん×*/
ya5.parent.left.location.href = f1 ; /*leftは、frame.htmlで定義したname*/
ya5.parent.right.location.href = f2 ; /*rightも同様*/
ya5.top.document.title = ttl ; /*タイトルの書き換えです*/
}
//-->
</script>
</head>
<body>
<a href="JavaScript:fchange('a01.html','a02.html','自作イラスト');">自作イラスト</a>
<hr>
<a href="JavaScript:fchange('b01.html','b02.html','デジカメの写真');">デジカメの写真</a>
<hr>
<a href="frame.html">frame.htmlへ</a>
</body>
</html>
======================================================================
■frame.html
======================================================================
<html>
<head>
<title>frame</title>
<META http-equiv="Content-Type" content="text/html; charset=shift_jis">
<META http-equiv="Content-Script-Type" content="text/javascript">
</head>
<frameset cols="50%,50%">
<frame src="c01.html" name="left" noresize>
<frame src="c02.html" name="right" noresize>
</frameset>
</html>
======================================================================
補足コメント
ya5maa

お礼率 66% (12/18)

ありがとうございます。
どうしても新しいウィンドウが開いてしまうんですね。
それでしたら、せめて元のウインドウを閉じることはできますでしょうか?
何回も、何回も申しわけありません。
よろしくお願いいたします。
投稿日時 - 2001-11-28 03:49:24
お礼コメント
ya5maa

お礼率 66% (12/18)

ウインドウを閉じるのは無理の用ですね。
長々とおつきあいありがとうございました。
投稿日時 - 2001-12-02 04:18:08
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1

ちょっと違う解決方法ですが、frame2.htmlを作って、 frame.htmlは、「a01.html」「a02.html」を表示 frame2.htmlは、「b01.html」「b02.html」を表示 というようにする方法はいかがでしょう? ...続きを読む
ちょっと違う解決方法ですが、frame2.htmlを作って、
frame.htmlは、「a01.html」「a02.html」を表示
frame2.htmlは、「b01.html」「b02.html」を表示
というようにする方法はいかがでしょう?
お礼コメント
ya5maa

お礼率 66% (12/18)

今回お世話になっております質問の“肝”は、まさにそこなのです。
「フレームhtml」を分けずに、何とか処理できないかということなんです。
やはり無理なのでしょうか?
よろしくお願い申し上げます。
投稿日時 - 2001-11-25 22:23:33
  • 回答No.2
レベル10

ベストアンサー率 54% (96/175)

こんばんわ。 無理だと思います。 フレームはお盆のような物で、且つ載る物は指定しなくては、いけません。 よって「frame.html」に「a01.html」「a02.html」を載せるようにしてあれば、他の物(「b01.html」「b02.html」)は載りません。 ですので、別なお盆を「b01.html」b02.html」の為に、用意してあげましょう。 例えば「frame-b.html ...続きを読む
こんばんわ。
無理だと思います。

フレームはお盆のような物で、且つ載る物は指定しなくては、いけません。
よって「frame.html」に「a01.html」「a02.html」を載せるようにしてあれば、他の物(「b01.html」「b02.html」)は載りません。

ですので、別なお盆を「b01.html」b02.html」の為に、用意してあげましょう。
例えば「frame-b.html」というお盆を作り、「b01.html」b02.html」を載せてあげれば、ya5maaさんの作りたいページが出来るはずです。

   (._.)
「contents.html」→「自作イラスト」frame.html
    ↓
「デジカメの写真」frame-b.html

もし、私が勘違いしているようでしたら、補足ください。
それでは、良いページを作成されることをお祈りしま~すっ!(^^)/~~
  • 回答No.3
レベル7

ベストアンサー率 41% (10/24)

こんばんは。 つまり、フレーム割りを定義したページを使い回す。。。 ということでしょうか? んん~。htmlでは、ちょっと思いつかないですね。 JavaScriptで、フレームを定義したページを作っちゃえばできますが。。 フレームの定義だけなら少ないソースですむので、そんなには面倒じゃないですね。でも、コレだとフレームのページ自体がイナライ。。。 ちょっとコレ↓を同じディレクトリに置いて試 ...続きを読む
こんばんは。
つまり、フレーム割りを定義したページを使い回す。。。
ということでしょうか?
んん~。htmlでは、ちょっと思いつかないですね。
JavaScriptで、フレームを定義したページを作っちゃえばできますが。。

フレームの定義だけなら少ないソースですむので、そんなには面倒じゃないですね。でも、コレだとフレームのページ自体がイナライ。。。
ちょっとコレ↓を同じディレクトリに置いて試してみてください。
フレームの分割を変えたいのだったら、それも制御するようにもできます。
========================================
<html>
<head>
<title>frametest</title>
<script language="JavaScript">
<!--
function fmake(f1,f2,ttl)
{
ya5 = window.open();
ya5.document.write('<html>\n<head>\n<title>'+ttl+'</title>\n');
ya5.document.write('</head>\n<frameset cols="50%,50%">\n');
ya5.document.write('<frame src="'+f1+'.html" name="left" noresize>\n');
ya5.document.write('<frame src="'+f2+'.html" name="right" noresize>\n');
ya5.document.write('</frameset>\n</html>');
ya5.document.close();
}
//-->
</script>
</head>
<body>
<a href="JavaScript:fmake('a01','a02','自作イラスト');">自作イラスト</a>
<a href="JavaScript:fmake('b01','b02','デジカメの写真');">デジカメの写真</a>
</body>
</html>
============================================
補足コメント
ya5maa

お礼率 66% (12/18)

こんなに長い解答本当にありがとうございます。
さっそく試させていただきました。
自分のイメージにかなり近いものでした。
この教えていただいたものに、
・新しくウインドウが開かれてリンクページが開かれましたが、現在のウインドウでリンクページを開く方法
・ブラウザのアドレスバーに任意のアドレスを記載する方法
はございますでしょうか?
これができますと完全に自分のイメージと同じホームページが作ることができます。
ご面倒とは存じますが、なにとぞよろしくお願いいたします。
投稿日時 - 2001-11-26 06:26:31
  • 回答No.4
レベル7

ベストアンサー率 41% (10/24)

え、?こういうので良かったんですか? ・・、ブラウザのアドレスバーに、というのは、 ちょっと無理(というか知らない)ので、formで作ってみました。 ちょっと、ソースとにらめっこしてください。。 内容が増えているのは、functionが、二つあるから、 function fmakeが、リンクをクリックしたときに使う方。 function fmake2が、アドレスを入力するヤツです。 ...続きを読む
え、?こういうので良かったんですか?

・・、ブラウザのアドレスバーに、というのは、
ちょっと無理(というか知らない)ので、formで作ってみました。
ちょっと、ソースとにらめっこしてください。。

内容が増えているのは、functionが、二つあるから、
function fmakeが、リンクをクリックしたときに使う方。
function fmake2が、アドレスを入力するヤツです。

http://www.yahoo.co.jp/
http://www.goo.ne.jp/
とか入力してみて下さい。

私もアマチュアなので、間違いがありそうですが。。

<html>
<head>
<title>frametest</title>
<META http-equiv="Content-Type" content="text/html; charset=shift_jis">
<META http-equiv="Content-Script-Type" content=text/javascript>
<script language="JavaScript">
<!--
function fmake(f1,f2,ttl)
{
document.open();
document.write('<html>\n<head>\n<title>'+ttl+'</title>\n');
document.write('</head>\n<frameset cols=\"50%,50%\">\n');
document.write('<frame src=\"'+f1+'.html\" name=\"left\" noresize>\n');
document.write('<frame src=\"'+f2+'.html\" name=\"right\" noresize>\n');
document.write('</frameset>\n</html>');
document.close();
}
function fmake2()
{
f1 = document.form1.t1.value ;
f2 = document.form1.t2.value ;
if ((f1=="" ) || (f2=="")){alert("両方にURLアドレス\n\nまたはファイル名を入力して下さい");}
else{
document.open();
document.write('<html>\n<head>\n<title>ココにタイトル</title>\n');
document.write('</head>\n<frameset cols=\"50%,50%\">\n');
document.write('<frame src=\"'+f1+'\" name=\"left\" noresize>\n');
document.write('<frame src=\"'+f2+'\" name=\"right\" noresize>\n');
document.write('</frameset>\n</html>');
document.close();
}
}
//-->
</script>
</head>
<body>
<a href="JavaScript:fmake('a01','a02','自作イラスト');">自作イラスト</a>
<a href="JavaScript:fmake('b01','b02','デジカメの写真');">デジカメの写真</a>
<hr>
※ファイル名には、拡張子も付けて下さい。
<form name="form1">
左のページURLorファイル名 : <input type="text" size="50" name="t1"><br>
右のページURLorファイル名 : <input type="text" size="50" name="t2"><br>
<input type="button" value="入力してクリック!" onClick="fmake2();">
<input type="reset" value="リセット">
</form>
<hr>
</body>
</html>
補足コメント
ya5maa

お礼率 66% (12/18)

 現在のウインドウでリンクページを開く方法ありがとうございました。
 そして、ブラウザのアドレスバーを制御するのは無理なんですね。
 申し遅れましたがアドレスバーに表示させておきたいのは「frame.html」 なのです。(ブラウザの「お気に入り」の対策として)
 そこで「contents.html」で引数を「frame.html」に渡し、「frame.html」で処理をすれば、アドレスバーに「frame.html」が表示されると思うのです。
 ブラウザの「お気に入り」などから「frame.html」を直に読み込んだときは「c01.html」と「c02.html」 が表示され、「contents.html」からきたときはそれに応じた制御をする。
 このようなことが可能でしょうか?
 またご面倒をおかけいたしますがなにとぞよろしくお願い申し上げます。
投稿日時 - 2001-11-26 17:41:56
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ