- ベストアンサー
リンクターゲットの指定の仕方について教えて下さい。
こんばんは。 いつもお世話になっております。 自分なりに調べてみたのですが、解決できないので 投降させて頂きました。 どなたか、ご指導頂けないでしょうか…。 大抵は、フレーム(上下分割など)で区切られた index.htmlのメインのフレームに、 フレームの名前(name="base"等)をつけ、リンクメニューを クリックでindex.html内の、base へ表示されますよね。 ですが、他の、フレーム分割されたページの (name="sita")へ飛ばせる事は可能なのでしょうか…? 【ページ構成・例・】 ■---index.html リンク文字1~12まで 計12Pリンク※インラインフレーム有り(name="frame") ■---bunkatu.html フレーム分割ページ │---menu.html フレーム上 │---フレーム下 (name="sita") 【リンク構造】 ・リンク1~3 index.html 内の、インラインフレームに表示 ・リンク4~12 bunkatu.html 内の、フレーム下(name="sita")に表示 したい。 ※ リンク1~3 は、相対パス ※ リンク4~12 はhttp://から始まる絶対パス 。☆.。.:*・゜☆.。.:*・゜☆.。.:*・゜☆.。. このような ↓ 【・リンク4~12 bunkatu.html 内の、フレーム下(name="sita")に表示 したい。】 ターゲット指定というのは、可能なのでしょうか…? 可能であれば、どのように記述すれば良いのでしょうか…。 どうかご指導よろしくお願い申し上げます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No3,一部修正。 index側でアドレス書けるので、下のやつよりスマート (index.html) <html> <head> <body> <img src='1.jpg' onclick="javascript:window.open('./bunkatu.html?url=http://www.infoseek.co.jp/', 'right','');"> <img src='2.jpg' onclick="javascript:window.open('./bunkatu.html?url=http://www.yahoo.co.jp/', 'right','');"> <img src='3.jpg' onclick="javascript:window.open('./bunkatu.html?url=http://www.google.co.jp/', 'right','');"> </body> </html> (bunkatu.html) <html> <head> <script type="text/javascript"> function UrlJump() { var strpath = window.location.search; var arypath = strpath.split("="); var strUrl = arypath[1]; window.open(strUrl, 'sita',''); } </script> </head> <frameset rows="150,*"> <frame src="menu.html" > <frame src="sita.html" name="sita"> </frameset> <body> </body> </html>
その他の回答 (4)
- koutarou504
- ベストアンサー率44% (182/407)
#1の者ですが、私の回答での前提(質問?)を否定していないので、その前提の上でお答えすると。 「動作時点で存在しないフレーム(名称)への表示指示は不可能です。」 という事です。 意識して欲しいのは、その時点で menu.html も表示指示したいのですよね・・・。 ですので後は、如何にしてその様なフレーム構成を実現するかの方法を考えるしかなく。 で、基本が先の答えです。 単にファイル名とフレーム下の指定が違うだけで良い複数のファイルを用意するだけで実現できます。 たいしたファイル容量でもないのでサーバにも閲覧者にもあまり負荷はかかりません。 それでも開発側の希望からファイルは1つでと望む場合は、呼び出す時にパラメータを付けてCGIなりJavaScriptなりでそれを取得して処理を分岐させてファイル内を編集する様にするとか・・・。 多少の知識とサーバなり閲覧環境なりへの負荷がかかるという検討ポイントがありますが。 あと変則ですが別ウィンドウを開いてフレームを表示してその後に希望するページの表示指示を行ったさらにその後にその元のウィンドウを閉じるという事でも 技術的には可能ですが、あまりお勧めには・・・。 もうひとつ、当該フレーム枠がないから表示指示できないのが問題なので、最初から存在させておく。つまり index.html をフレーム分割して最初はメニューのフレーム幅というか高さを 0 として見えない様にしておきます。で、リンク4~12へ遷移する前にそのリンクの onclick などでメニューの幅なり高さなりを戻して見える様にすると・・・。検証もしていませんし結構無理やりな処理なので、検討時の1案程度として・・・。 という事で、1つのファイルとしたいならCGIで。 まぁお勧めは1つずつ別々のフレーム分割ページ用ファイルという事です。
お礼
koutarou504さん。 おはよう御座います。 なかなか教えて!gooに入る事が出来なくて お礼の書き込みが遅くなってしまってすみませんでした。 akanekorさんに教えて頂いた方法でできました。 この度は、ありがとうございました。
- akanekor
- ベストアンサー率52% (102/194)
とりあえず、サンプルつくってみました。 index側のリンクに ?index=(数値)を bunkatu.htmlの UrlJump()に合わせてURL書いてください。 眠いので解説は無しです。 うー もう朝だ(==; (main.html 側) <html> <head> </head> <frameset cols="150,*"> <frame src="index.html" name="left"> <frame src="" name="right"> </frameset> </body> </html> (index.html 側) <html> <head> <body> <img src='1.jpg' onclick="javascript:window.open('./bunkatu.html?Index=1', 'right','');"> <img src='2.jpg' onclick="javascript:window.open('./bunkatu.html?Index=2', 'right','');"> <img src='3.jpg' onclick="javascript:window.open('./bunkatu.html?Index=3', 'right','');"> </body> </html> (bunkatu.html 側) <html> <head> <script type="text/javascript"> function UrlJump() { var strpath = window.location.search; var arypath = strpath.split("="); index = new Number(arypath[1]); if (index == 1) { strUrl = "http://www.infoseek.co.jp/"; } else if (index == 2) { strUrl = "http://www.yahoo.co.jp/"; } else { strUrl = "http://www.google.co.jp/"; } window.open(strUrl, 'sita',''); } </script> </head> <frameset rows="150,*"> <frame src="menu.html" > <frame src="sita.html" name="sita"> </frameset> <body> </body> </html> (sita.html 側) <html> <head> <script type="text/javascript"> function Oninit() { window.parent.UrlJump(); } </script> </head> <body onload="Oninit()"> </body> </html>
- akanekor
- ベストアンサー率52% (102/194)
フレーム名が重なっていないなら onclick="javascript:window.open('http://ww/', 'sita','');"> 使えば、どうにでもなると思う。 こんな感じで、 <input type="button" value="リンク6" onclick="javascript:window.open('http://www.infoseek.co.jp/', 'sita','');"> <a onclick="javascript:window.open('http://www.infoseek.co.jp/', 'sita','');">サイト4</a> <img src='1.jpg' onclick="javascript:window.open('http://www.infoseek.co.jp/', 'sita','');">
お礼
ご指導ありがとうございます。 index.html内に、教えて頂いたスクリプトを 記述して試してみたのですが、インフォシークの ページが、別窓で開いてしまうのです。 希望する動きは、index.htmlのリンククリックで、 bunkatu.html(フレーム分割ページ)が開き、 bunkatu.htmlのフレーム下の部分(name="sita") に表示させたいのです。 なんどもすみません。 よろしくお願い申し上げます。
- koutarou504
- ベストアンサー率44% (182/407)
あの~、index.html が表示されていて、 そこからの動作という事でよろしいでしょうか? とすると、bunkatu.html は表示されていない状態ですよね? ならばその時点では sita という名前の場所は存在しない訳で・・・。 ■---bunkatu4.html フレーム分割ページ │---menu.html フレーム上 │---フレーム下4 (name="sita") ■---bunkatu5.html フレーム分割ページ │---menu.html フレーム上 │---フレーム下5 (name="sita") という風にそれぞれにフレーム分割ページ? を用意するしかないのでは? おまけで、 別ウィンドで既に sita という名のフレーム等があったりすると、そこに表示されたりしますが・・・。
お礼
ご指導ありがとうございます。 教えて頂いた方法だと、リンクの数分bunkatu○.htmlを 用意しなくては駄目なので、何か良い方法はないかなぁと 思って、投降させていただいたのです……。
お礼
akanekorさん。 おはよう御座います。 なかなか教えて!gooに入る事が出来なくて お礼の書き込みが遅くなってしまってすみませんでした。 教えて頂いた方法でできました!! 本当に、ありがとうございました。