「フレームhtml」でリンクを張り、フレームの中身を指定する方法

このQ&Aのポイント
  • 「フレームhtml」にリンクを張り、リンク元のページから「自作イラスト」や「デジカメの写真」のページをフレーム内に表示する方法について説明します。
  • フレームを活用した2分割のページである「自作イラスト」と「デジカメの写真」のページを、リンク元のページから指定して表示することができます。
  • 具体的な手順としては、リンク先のURLにフレームの中身を指定するためのパラメータを追加することで、フレーム内に表示させることができます。
回答を見る
  • ベストアンサー

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

 ”フレーム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」という構成で表示させることはできるのでしょうか?

  • HTML
  • 回答数5
  • ありがとう数2

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

  • ベストアンサー
  • shiba1
  • ベストアンサー率41% (10/24)
回答No.5

ブラウザのアドレスバーの内容書き換え・・・というのは、 たぶん。無理だと思います。値を取得するだけならできそうですけど。 かなりできそうなんですけどね。お気に入り、ということを考えると、 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
質問者

お礼

ウインドウを閉じるのは無理の用ですね。 長々とおつきあいありがとうございました。

ya5maa
質問者

補足

ありがとうございます。 どうしても新しいウィンドウが開いてしまうんですね。 それでしたら、せめて元のウインドウを閉じることはできますでしょうか? 何回も、何回も申しわけありません。 よろしくお願いいたします。

その他の回答 (4)

  • shiba1
  • ベストアンサー率41% (10/24)
回答No.4

え、?こういうので良かったんですか? ・・、ブラウザのアドレスバーに、というのは、 ちょっと無理(というか知らない)ので、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
質問者

補足

 現在のウインドウでリンクページを開く方法ありがとうございました。  そして、ブラウザのアドレスバーを制御するのは無理なんですね。  申し遅れましたがアドレスバーに表示させておきたいのは「frame.html」 なのです。(ブラウザの「お気に入り」の対策として)  そこで「contents.html」で引数を「frame.html」に渡し、「frame.html」で処理をすれば、アドレスバーに「frame.html」が表示されると思うのです。  ブラウザの「お気に入り」などから「frame.html」を直に読み込んだときは「c01.html」と「c02.html」 が表示され、「contents.html」からきたときはそれに応じた制御をする。  このようなことが可能でしょうか?  またご面倒をおかけいたしますがなにとぞよろしくお願い申し上げます。

  • shiba1
  • ベストアンサー率41% (10/24)
回答No.3

こんばんは。 つまり、フレーム割りを定義したページを使い回す。。。 ということでしょうか? んん~。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
質問者

補足

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

  • seal-papa
  • ベストアンサー率54% (96/175)
回答No.2

こんばんわ。 無理だと思います。 フレームはお盆のような物で、且つ載る物は指定しなくては、いけません。 よって「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 もし、私が勘違いしているようでしたら、補足ください。 それでは、良いページを作成されることをお祈りしま~すっ!(^^)/~~

noname#5179
noname#5179
回答No.1

ちょっと違う解決方法ですが、frame2.htmlを作って、 frame.htmlは、「a01.html」「a02.html」を表示 frame2.htmlは、「b01.html」「b02.html」を表示 というようにする方法はいかがでしょう?

ya5maa
質問者

お礼

今回お世話になっております質問の“肝”は、まさにそこなのです。 「フレームhtml」を分けずに、何とか処理できないかということなんです。 やはり無理なのでしょうか? よろしくお願い申し上げます。

関連するQ&A

  • 2つのフレームに対して同時にリンクさせることは可能でしょうか?

    教えてください。お願いします。 たとえば、 左のフレームには(1)本のジャンル、(2)その下にはジャンル別に本のタイトルが入力されているというページ、 右フレームには(3)その本の内容が出てくるという構成で、 左フレームの(1)をクリックすると、そのページ下部分の(2)に飛び、同時に右フレームには(3)が出てくるというように、(1)をクリックすると同時にふたつ一緒に切り替わるリンク設定というのは可能でしょうか?

  • フレームへのリンクについて

    初めまして。フレームページへのリンクについて どうしてもわからなくって質問させていただきます。 例えばトップページにA、Bというリンク(文字)があります。 リンクを押すとフレーム(ナビゲーションと本文に切られて いる)ページに飛ぶのですがその際にA、Bの違いを認識して フレームページを壊さずに本文のエリアにAかBを表示すること って可能なのでしょうか? 知人に頼まれて作っているのですがそのような依頼なので どうしたらよいかなぁと考えています。 よいお知恵がありましたらよろしくお願いします。

  • 他のページ内の複数のフレームに同時にリンクさせるには?

    フレーム分割されてないページから、フレーム分割されている他のページ内の複数のフレームに、それぞれURLを指定して同時にリンクさせるには? HPを作っているのですが、どうしてもわからないことがあります。 フレーム分割の無い「サイトマップ」のページから、 フレーム分割されている他のページにリンクさせる際に、 リンク先ページの各フレームがそのリンク毎に変わるよう、別々に設定したいのです。 <例> Aページ(サイトマップ)内の”寿司”をクリックすると、フレーム分割されたBページの「LeftFrame」には”日本料理のページ”を、「RightFrame」には”寿司のページ”を表示させる。 Aページ(サイトマップ)内の”ピザ”をクリックすると、フレーム分割されたBページの「LeftFrame」には”イタリア料理のページ”を、「RightFrame」には”ピザのページ”を表示させる。 ↑ これを可能にする方法、タグなどがありましたら、どうかアドバイスをお願い致します!

  • 固定フレームのついたフレームページにリンクするには?

    メモ帳でホームページを作っています。初心者です。 メニューページにはフレームを使わず、 コンテンツ用ページを二つのフレームを使って、上部に各コンテントファイル、下部にメニュー(各コンテント名を一覧表示)が表示されるようにしています。下部フレームは固定フレームにしたいと思っています。 メニューページで各コンテント名をクリックしたとき、 上部にそのコンテントファイル、下部に固定メニューファイルの表示されたフレームページへリンクさせたいのですが、この方法がわかりません。 初めは、フレームページにアドレスを付けてリンクすればいいのよねー、と試みたのですが、そうすると全てのフレームページ、つまり上部フレームにそれぞれのコンテンツファイルが表示され、下部にメニューファイルが表示されたフレームページのひとつひとつにアドレスをつけないと、リンクできないのでは?と疑問がわきました。 しかし、それではフレームページの固定メニューファイルの各コンテント名をクリックしたときに、上部フレームにはコンテンツファイルのみでなく、各コンテンツのフレームページが表示されてしまい、下部の固定フレームが増えていって(泣)変なことになってしまいますよね。 フレームページ間のリンクは、その固定フレームの各コンテント名のtargetを上部フレーム名にすればよいので問題ないのですが・・・。 メニューページもフレームページにすれば解決するでしょって感じですが^_^;、メニューページには各コンテント名が載せてあるのに下にも同じ項目を並べるのはくどい気がして、ちょっと・・・と思いまして。 ご存知の方よろしくお願いします!

    • ベストアンサー
    • CSS
  • フレームから場所を指定したリンクを・・・

     今私が製作しているホームページはフレームを縦に二分割しています。 左側のフレームにメニューとしてリンク用のボタンをおいて、右側のフレームにメインのページをおいてます。 今回あまりにも長いページが1ページできてしまったのでリンク用のボタン二つを用意し、長いページの中に二箇所<a name="~"></a>と付けました。 左側のリンク用のボタンにも<a href="~.html#~></a>としているのに、 実際クリックするとその長いページの頭から普通に表示されてしまいます。 フレームをつかってメインの方に場所を指定してリンクはできないのでしょうか? 読みにくい文章で申し訳ありませんがどなたか助けてください。

    • ベストアンサー
    • HTML
  • フレーム同時リンク後のブラウザ「戻る」ボタンについて

    はじめまして。 フレームページの構成が以下の場合において index.html...親フレーム a.html.......メニュー b.html.......サブメニュー c.html.......メイン a.htmlのリンクテキストをクリックすると b.html--->d.html c.html--->e.html 二つ同時にリンクできるjavascriptは、理解できたのですが、 この後、ブラウザの「戻るボタン」を押すと e.html--->c.html d.html--->b.html と2回ボタンを押さないと戻れません。1回の操作で済む ご教授をお願いします。 いろいろサイトを見ましたが力不足でわかりませんでした。

  • フレーム表示のページのリンク先を同ページ内に複数指定したいのですが・・・

    お世話になります。 質問の内容なのですが、 ホームページをフレーム表示でA,B,Cと3分割した場合に、 フレームAのリンクの1つをターゲットフレームでフレームBにリンクしたとします。 フレームAからフレームBにリンクしたリンクをクリックした時に、フレームCの表示を違うHTMLに変えることはできないのでしょうか? わかりずらくてすみません。 要は、フレームAのリンク指定先をフレームBとC 2つにすることは可能なのでしょうか? またフレームBにリンクしてあるフレームAのリンクをクリックした時に、 フレームCに貼ってある画像のみを変更するようなことはできるのでしょうか? わかりずらくて申し訳ありませんが、よろしくお願い致します。

  • フレームのtarget指定方法

    社内で使用するページのフレームについてお願いします。 A支店B支店は違うサーバを使用しています。 <html> <head> <title>社内用フレーム</title> </head> <frameset cols="50%,*"> <frame src="A支店BBS" name="frame1"> <frame src="B支店のページ1" name="frame2"> </frameset> </html> のようなページframe.htmlをローカルで作成し、ブラウザで閲覧します。 そのとき、A支店BBSにリンクを貼った書き込み <A HREF="B支店のページ2">ここを見てくださいね!</A> をクリックすると、frame2である右側のページにB支店のページが表示されるように することは可能でしょうか? target="frame2を追記するだけでは新規のウィンドウが立ち上がってしまうようです。 あくまで社内利用なので、SEO等は考えから除外しております。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • リンク先を開くウィンドウを指定できますか

    ページ構成としては、 A:メインページ B:メインページから開かれる新しいページ となっています。 メインページからリンクをクリックすると、 新しいウィンドウが開き、Bのページが表示されます。 ここで、Bのページのリンクをクリックすると、 Aのメインページ内にそのリンク先を開きたいのですが 可能でしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • リンク先がフレームセットの場合で・・・

    A.htmlというページからB.htmlにというページの中盤にある記事Xにリンクする場合 <a href="B.html#X">記事Xへ</a> と書きますよね? では、A.htmlページからフレームセットB.html(フレームはC.htmlとD.htmlに分かれている)、にリンクしてフレームDの中盤にある記事Xを表示させる方法はあるのでしょうか? わかりにくい文章ですみませんが御願いいたします

    • ベストアンサー
    • HTML