”フレーム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」という構成で表示させることはできるのでしょうか?
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
もし、私が勘違いしているようでしたら、補足ください。
それでは、良いページを作成されることをお祈りしま~すっ!(^^)/~~
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>
============================================
この回答への補足
こんなに長い解答本当にありがとうございます。
さっそく試させていただきました。
自分のイメージにかなり近いものでした。
この教えていただいたものに、
・新しくウインドウが開かれてリンクページが開かれましたが、現在のウインドウでリンクページを開く方法
・ブラウザのアドレスバーに任意のアドレスを記載する方法
はございますでしょうか?
これができますと完全に自分のイメージと同じホームページが作ることができます。
ご面倒とは存じますが、なにとぞよろしくお願いいたします。
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>
この回答への補足
現在のウインドウでリンクページを開く方法ありがとうございました。
そして、ブラウザのアドレスバーを制御するのは無理なんですね。
申し遅れましたがアドレスバーに表示させておきたいのは「frame.html」 なのです。(ブラウザの「お気に入り」の対策として)
そこで「contents.html」で引数を「frame.html」に渡し、「frame.html」で処理をすれば、アドレスバーに「frame.html」が表示されると思うのです。
ブラウザの「お気に入り」などから「frame.html」を直に読み込んだときは「c01.html」と「c02.html」 が表示され、「contents.html」からきたときはそれに応じた制御をする。
このようなことが可能でしょうか?
またご面倒をおかけいたしますがなにとぞよろしくお願い申し上げます。
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>
======================================================================
この回答への補足
ありがとうございます。
どうしても新しいウィンドウが開いてしまうんですね。
それでしたら、せめて元のウインドウを閉じることはできますでしょうか?
何回も、何回も申しわけありません。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- Chrome(クローム) タスクバーにローカルのhtmlのリンクをchromeで留めてダブルクリックして使うことできますか? 1 2023/08/26 18:13
- HTML・CSS ホームページをちょっと加工する程度の無料または古くて安く購入できる作成ソフトを教えてください 5 2022/12/16 12:17
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- SEO googleサーチコンソールでの重複ページ(ダブルスラッシュ) 3 2023/06/12 15:00
- ホームページ作成・プログラミング ホームページ作成について。「ワードプレスではありません」。 3 2023/08/13 14:44
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
- HTML・CSS スマホでHTMLファイルを開いてリンク先へ移動させたいです 2 2023/03/04 18:06
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【SSI】include file、include ...
-
SDカードに入れたjavascriptフ...
-
<a href="#" …>の意味を教えて...
-
getElementsByNameで要素が取得...
-
javascriptでbgmを自動再生する...
-
セキュリティ保護の警告が出な...
-
初心者javascript ウィンドウサ...
-
function の return 値を表示し...
-
iframeの中から親ページをスム...
-
複数のJavascriptを1つのscrip...
-
WEB上で編集できない、スク...
-
bodyにidをつける理由は何ですか?
-
ボタンが押されたらWebページの...
-
別ファイルのfunctionの読み込み方
-
Dreamweaver で 外部JSを読み込...
-
SCRIPT5007: 未定義または NULL...
-
openerの関係が崩れてしまった...
-
ポップアップウィンドウの位置
-
何度もリピートする、カウント...
-
1から100までの平方根を表示す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンと入力を両方行う検...
-
【SSI】include file、include ...
-
ウインドウを縮小しても文字を...
-
ランダムにページにアクセスしたい
-
VBAでIEの操作→サブウインド...
-
ユーザーが更新ボタンを押さな...
-
HTML5のcanvasで描画がされない
-
「街」や「428」や「かまいたち...
-
SDカードに入れたjavascriptフ...
-
Visual Studio C# で htmlの文...
-
ifraameでのランダム表示時に不...
-
HP上のPDFファイルを保存禁止...
-
ページを訪問者にたった一度だ...
-
更新日時を偽装したい。方法は...
-
フレームの詳しいやり方がわか...
-
カウントダウンタイマー終了で...
-
WebBrowserコントロール(続き)
-
HTMLタグでマウスポインタを変...
-
input TYPE="FILE"で取得した画...
-
Html(表)のExcel出力
おすすめ情報