今だけ人気マンガ100円レンタル特集♪

この様なことは可能でしょうか。
もし可能で在れば方法を教えてください。

投稿型ホームページを考えています。
構成は左右のフレームとし、左がメインで右がサブです。
左右とも部品(html)としたいので、frameを使うことが条件です。

具体的には以下のような内容です。
メインは閲覧者が投稿する内容とし、サブにはその中のキーワードを表示する。
サブに表示したキーワードは後日のために保存しておく。

例えば、メインでしりとりをやらせ、『ん』で負けた人の言葉をサブに表示する。
年に一度グランドチャンピオン大会を実施のため、
取ってあったデータを別途公開する。
(あくまで例えです、申し訳在りませんが実の内容は内緒です)

これから始めるのですが、左のフレームは作れる様な気がします。
グランドチャンピョン大会のために保存していた内容を表示することも出来ると思います。

今考えがまとまらないのが、
メインのテキストをある条件で抽出して、サブのフレームに表示する部分とそれを保存する部分です。
具体的にイメージできないのが、
メインのフレーム内のテキストをどう参照するかということです。

分からないながらに、javaでcopyというようなことをするのかな、とおぼろげに考えています。

兎にも角にも可否が知りたく、可能ならば方法も知りたいです。
長くなりましたが、宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

データ参照の仕方だけ簡単に。



まず、ページ全体をframe.htmとし、左側のフレームの
名前をmain右側をsubとし、それぞれmain.htm,sub.htmを
呼ぶとします。
するとこんな感じで、subからmainを参照可能です。

//frame.htm
<html>
<frameset cols="50%,*">
<frame src="main.htm" name="main">
<frame src="sub.htm" name="sub">
</frame>
</html>

//main.htm
<html>
<body>
<form name="f1">
i1:<input type="text" name="i1" value="データ1"><br>
i2:<input type="text" name="i2" value="データ2"><br>
i3:<input type="text" name="i3" value="データ3"><br>
</form>
</body>
</html>

//sub.htm
<html>
<body>
<form>
<input type="button" value="i1の値" onClick="alert(parent.main.document.f1.i1.value)"><br>
<input type="button" value="i2の値" onClick="alert(parent.main.document.f1.i2.value)"><br>
<input type="button" value="i3の値" onClick="alert(parent.main.document.f1.i3.value)"><br>
</form>
</body>
</html>

すなわち、subにとって親のページのmainという名前の
フレーム(window)にあるdocumentの中のform名f1にある
i~要素の値(value)を参照するわけです。

この回答への補足

yambejp様、毎回長くて申し訳在りません。
今動いているcgiを今回の例に当てはめると以下のようなイメージになります。

朝日、日の丸、ルビー、ビーコン としりとりをする場合。

始めに『朝日』と入れると『朝日』となります、
次に『日の丸』と入れると『朝日、日の丸』となります。
次に『ルビー』と入れると『朝日、日の丸、ルビー』と繋がってゆきます。
そして、最後に『ビーコン』で負けるとその回が終わるというモノです。

このときに出来上がるのは短くても長くても一つのテキストです(例えばshiritori.dat)。

今回のイメージに当てはめると、
メインのhtml(フレーム)にはcgiで作ったテキスト(『朝日、日の丸、ルビー、ビーコン』)が表示されている、
というモノです。

このテキストから最後の『ビーコン』だけを抜き出して、サブに『負けのワードは ビーコン』の如くに表示したいのです。

ココで条件なのですが、メインで出来上がってゆくテキスト(shiritori.dat)を扱うとき、
手作業ならサブのcgiでメインで書き出したテキストをそのまま扱えば良いので出来ると思います。
問題は、手作業ではなく、この一連を《自動》でやりたいのです。
(入力があった途端に継続なり、負けを反映したいのです)

ということから、分かりにくい説明で申し訳なかったのですが、一番聞きたかった部分は、
メインで《cgiにより作った『shiritori.dat』テキストデータをサブで参照する方法》であります。
これが出来れば、グランドちゃんピョン大会のための保存も可能となります。

難しい注文で申し訳在りません。
もう少しお力をお貸し下さい、宜しくお願いします。

補足日時:2006/10/09 06:20
    • good
    • 0
この回答へのお礼

早速有り難うございました。
まさにこの隣のフレームのデータ参照部分が聞きたかったのです。
例示いただいたサンプルは完璧に動きました。
嬉しい限りです。
これで漠然とではありますが、8割以上は見えてきた感じがします。

いざとなればこれでいいのですが、
私が考えていたのはこの例のメインの作りなのですが、
実際に今動いているcgiを少し改造して使おうと思っています。
初めから言わないで済みませんでした。
もう少し詳しく補足に書かせていただきます。

お礼日時:2006/10/09 06:08

質問が煩雑でわかりにくいような感じがします。


とりあえずフレーム構成で別フレームに記載されたモノは
javascriptをつかえば参照できます。

データの保存はhtmlだけではできませんので、なにか
サーバーサイドで動く仕組みが必要でしょう。

もしjavaとjavascriptを混同しているようでしたら、
この際ですから完全に別物だと認識した方がよいでしょう。
    • good
    • 0
この回答へのお礼

早速有り難うございます。
確かにjavaとjavascriptのハッキリした違いは分かっていません。
html内で使うのがjavascriptで良いのでしょうか。
ヒントのコーディングを例示いただけると嬉しいです。
また、データ保存はcgiを使うのかと思っています。
引き続き宜しくです。

お礼日時:2006/10/08 19:51

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QHTMLファイル同士での値渡し

困っています。

HTMLファイルからHTMLファイルへ移動するときに、
HTMLファイル1でJavaScript で算出された値を
HTMLファイル2へ渡して使用したいのです。

showModalDialogだとダイアログにしか渡せないし・・・。
このように、値をそのまま次のページに渡すための方法を教えてください。
お願いします。

Aベストアンサー

すみません。うっかりしてました。

document.write(FORM[v1]);
では、v1を変数と認識してしまうので、エラーになってしまいますね。

document.write(FORM.v1);  // 「FORM.v1」です
あるいは
document.write(FORM["v1"]);
としてください。

Qframe間の値の受け渡し方法

環境はxp、apache2、php5、Postgresql8.2です。
1台のPCをサーバ&クライアントにしています。
ただ今PHPとPostgresqlの勉強をしています。

---------------------------
frameで左右に分かれています。
「左がメニュー画面」
「右がデータを表示する画面」
---
<frame name="hidari" src="aa.php">
<frame name="migi" src="ee.php">
メニュー用のPHPに

---------------------------
aa.php(左のメニュー画面)
「number」というテキストボックスに入力して、
「検索」をクリックすると、
右の画面にデータが表示されます。

<FORM name="Form1" METHOD=post target="migi">

number<INPUT TYPE=TEXT NAME=number SIZE=5>

<a href="./ee.php?func=ads" target="migi"><span style="color:#DB7093">検索</style></a>
---------------------------
ee.php(左のデータ画面)
テキストボックス「number」の値を受け取るために
echo $_POST['number'];
「number」の値が表示されません。

どのようにすれば受け取れますか?

環境はxp、apache2、php5、Postgresql8.2です。
1台のPCをサーバ&クライアントにしています。
ただ今PHPとPostgresqlの勉強をしています。

---------------------------
frameで左右に分かれています。
「左がメニュー画面」
「右がデータを表示する画面」
---
<frame name="hidari" src="aa.php">
<frame name="migi" src="ee.php">
メニュー用のPHPに

---------------------------
aa.php(左のメニュー画面)
「number」というテキストボックスに入力して、
「検索」をクリックすると...続きを読む

Aベストアンサー

PHPでの値の受け取り方を一度まとめなおしてみるといいかもしれません。

<FORM name="Form1" METHOD=post target="migi">
number<INPUT TYPE=TEXT NAME=number SIZE=5>

<a href="./ee.php?func=ads" target="migi"><span style="color:#DB7093">検索</style></a>

1)上記の例だと<form>タグが閉じていませんし、Actionが設定されていませんので、ee.phpを呼び出すことができないですね。
→この場合は、
<form name="Form1" method="POST" action="./ee.php" target="migi">
number<INPUT TYPE="TEXT" NAME="number" SIZE="5">
<input type="submit" value="検索">
</form>
としてあげる必要があります。

2)<a>タグでphpを呼び出した場合は、?以降にかかれたパラメータのみが、$_GETで引き渡されるだけです。
上記の例では、「?func=abs」のみですから、ここから呼び出されたばあいは、$_GET["func"]="abs"という値しかee.phpでは利用できません。
こちらでnumberの値を受け渡したければ、JavaScriptを利用するしかないですね。

PHPでの値の受け取り方を一度まとめなおしてみるといいかもしれません。

<FORM name="Form1" METHOD=post target="migi">
number<INPUT TYPE=TEXT NAME=number SIZE=5>

<a href="./ee.php?func=ads" target="migi"><span style="color:#DB7093">検索</style></a>

1)上記の例だと<form>タグが閉じていませんし、Actionが設定されていませんので、ee.phpを呼び出すことができないですね。
→この場合は、
<form name="Form1" method="POST" action="./ee.php" target="migi">
number<INPUT TYPE="TEX...続きを読む

Q別フレームのページを更新させたい

質問させてください。
Windows IE6.1で試しています。


左右に分かれたフレームのページをつくり、
右ページにメニュー、左ページに掲示板を作っています。
左ページを更新したら、同時に右ページも更新させたいのですが、
それの方法がわかりません。

一応、下記の通り試してみましたが、更新しませんでした。

function autoOpen(){
window.open("menu.htm","menu");
}

左ページの更新時、
BODYを下記のとおり書き換えています。

<body onLoad="autoOpen()">

あと、
<body onload="parent.frames.menu.reload(true)">
も試してみましたが、やはりダメでした。

何卒宜しくお願いします。m(_ _)mペコリ

Aベストアンサー

まずは、始めまして^^

早速ですが、質問の内容を見る限り、条件として左右にフレームが分かれた状態で、双方からページを変更出来る事を実現したいと言うことでよろしいのでしょうか?
(プラスしてポップアップウィンドウも更新させたいのかな??)
以下の説明は、親ウィンドウは左に掲示板(bbs)、右にメニュー(menu)、ポップアップウィンドウ(popup)でもメニューを表示するとして説明させて頂きます。


初めにフレーム間の操作についてですが、質問に最後に書かれている次の文は非常に惜しいですね
parent.frames.menu.reload(true)
非常に惜しいのですが、これでは多分エラーが発生してしまうと思います。

一つ記述を忘れている為に、発生しているエラーなのですが、その記述とは、「location」です。

日本語で訳すと、parent(親)の[frames(宣言されているフレーム中)]で「menu(menuと言うフレーム)」の「location(現在位置)」を「reload(更新)」してあげるのです。

つまり、以下の文に直せば上手く行ってくれると思います。(menu=フレーム右側、このScriptは掲示板ページから実行する物とします)

parent.frames.menu.location.reload(true)

付け加えて書いておきますが、framesは記述しない以下の文でも同様の動作をしてくれます。

parent.menu.location.reload(true)


次にポップアップウィンドウから親ウィンドウ内を操作する方法ですが、今回は親ウィンドウはフレーム単位で左右に分割されていると言うことなので、ポップアップウィンドウから一部のフレームを操作するのは、少し複雑になります。
以下に最初に説明した親フレームのmenuを更新するのと同様の動作をする例を書いてみますね^^
(この例ではポップアップウィンドウから親フレームのmenuフレームを更新します)

opener.menu.location.reload(true);

これで、ポップアップウィンドウからもmenuを更新することが出来ました。

以上で解説を終わります。
参考になったか分かりませんが、ホームページ作り、頑張ってください p(^-^)q

まずは、始めまして^^

早速ですが、質問の内容を見る限り、条件として左右にフレームが分かれた状態で、双方からページを変更出来る事を実現したいと言うことでよろしいのでしょうか?
(プラスしてポップアップウィンドウも更新させたいのかな??)
以下の説明は、親ウィンドウは左に掲示板(bbs)、右にメニュー(menu)、ポップアップウィンドウ(popup)でもメニューを表示するとして説明させて頂きます。


初めにフレーム間の操作についてですが、質問に最後に書かれている次の文は非常に惜しいですね
...続きを読む

Qフレームで指定している送信先にPOSTで値を送ることは可能でしょうか?

<frameset rows="120, *,">
   <frame src="page1.html" name="frm1">
   <frame src="POSTで値を送信" name="frm2">
</frameset>

という感じで、フレームの1つに値を渡したいと思っています。
データ量が多いためGETでは渡せず困っています。
フレームで指定した先に、POSTで値を渡すことは可能でしょうか?

よろしくお願いします。

Aベストアンサー

一応確認なんですが、1つのページにフレームが2つ(frm1とfrm2)があって、frm1のフォームの中身をfrm2のcgiへ渡す、ということでよろしいんですよね?

それでしたら、
<frameset rows="120, *">
<frame src="page1.html" name="frm1">
<frame src="blank.html" name="frm2">
</frameset>
としておいて(blank.htmlは何でもOK)、page1.htmlの中でフォームを用意し、
<form action="hoge.cgi" method="post" target="frm2">
とすると、frm2の中にhoge.cgiが読み込まれるというようになります。

Qframeset要素を使わずに画面を分割したい

アンテナ(下記サイト)のように左にメニュー画面を、右にコンテンツを表示するホームページを作成したいと考えています。
https://antenna.jp/

ひとつのウインドウで画面を2つにわけるためにはhtmlのframeset要素を使えばできることは把握しているのですが、上記サイトのアンテナではframesetを使わずに画面分割をしています。

見た目やレスポンシブ対応のしやすさも考え、できればframesetを使わずに画面分割を行いたいのですが、どのようにすれば可能でしょうか。
メニュー部分とコンテンツ部分を別々にスクロールできるようにしたいです。

どなたか分かる方教えてください。

Aベストアンサー

長くなるから、参考ページ参照。

参考URL:http://www.geocities.jp/eijispace/2012/0419.html

QURLを引数とし、フレーム間で渡す方法

こんにちわ。
現在開発しているWEBページで、困っています。

まず、最初のページで、フレームが左右に分割しています。
左フレームAはリンクがたくさんはってあります。
右フレームBはトップロゴがあります。
右フレームBのロゴを押すと、右フレームはさらに上下に分割し、上フレームCはヘッダーとして使用し、下フレームDは詳細画面になっています。
左フレームAのリンクを押すと、下フレームDの内容が変わるのですが、フレームが4つ(A,B,C,D)に分割される前に左フレームAのリンクを押してしまうと、新しくブラウザが開かれてしまいます(Targetがないため)

そこで、URLを引数として、上下画面にフレーム分割をするソースに受け取った引数URLをフレームセットで実行できないかと考えました。

・・・がサンプルなどをひっくり返しても、なかなかできません。
どなたかご教授していただけるととても助かります。
よろしくお願いいたします。

Aベストアンサー

この方法でお気に召すでしょうか。

<!-- main.html -->
<html>
<frameset cols="20%,*">
  <frame name="A" src="a.html" />
  <frame name="B" src="b.html" />
</frameset>
</html>

<!-- a.html -->
<html>
<head>
<script language="JavaScript">
function func( ancObj ) {
  // フレームBがなければ、とりあえず無視
  if ( !parent )
    return false;
  if ( !(parent.B) )
    return false;
  // フレームBの中にフレームDがなければ、フレームBを更新。
  // その際、フレームDの移り先も合わせて送信
  if ( !(parent.B.D) ) {
    parent.B.location.href="b.html?frameD=" + ancObj.href ;
    return false;
  }
  // フレームDがあれば、ハイパーリンクでジャンプさせて良し
  return true ;
}
</script>
</head>
<body>
  <a href="http://www.yahoo.co.jp/" target="D"
    onclick="return func(this)">Yahoo!</a><br />
  <a href="http://www.google.com/" target="D"
    onclick="return func(this)">Google</a><br />
</body>
</html>

<!-- b.html -->
<html>
<body>
  <a href="b2.html">さらに分割</a>
</body>
</html>

<!-- b2.html -->
<html>
<script language="JavaScript">
function funcOnLoad( ) {
  var searchs =""; // URLのパラメータ部分
  var key = "" ; // 検索パラメータ
  var keyHead = 0; // パラメータの先頭位置
  var keyTail = 0; // パラメータ+値の終了位置
  var urlOfFrameD = "" ; // フレームDのジャンプ先
  // パラメータ文字列の取得
  searchs = location.search;
  if ( searchs.length == 0 )
    return;
  // frameDというパラメータ検索
  key = "?frameD=" ;
  keyHead = searchs.indexOf( key );
  if ( keyHead < 0 ) {
    key = "&frameD=" ;
    keyHead = searchs.indexOf( key );
    if ( keyHead < 0 )
      return ;
  }
  // 値の終了位置を検索
  keyTail = searchs.indexOf( keyHead + key.length, "&" );
  if ( keyTail < 0 ) {
    urlOfFrameD = searchs.substring(keyHead + key.length);
  } else {
    urlOfFrameD = searchs.substring(keyHead + key.length, keyTail);
  }
  if ( urlOfFrameD.length == 0 )
    return ;
  // ジャンプ
  D.location.href = urlOfFrameD ;
}
</script>
<frameset rows="20%,*" onLoad="funcOnLoad( )">
  <frame name="C" src="c.html" />
  <frame name="D" src="d.html" />
</frameset>
</html>

ちょっと長いですが、順を追うと、まず、main.htmlを表示させます。main.htmlは、フレームで左右にa.htmlとb.htmlとに分割されてます。b.htmlはリンクがあり、選ぶとb2.htmlとなり、その中で上下にc.html、d.htmlとなります。
a.htmlには、リンクがあります。今回、onclick属性をつけて置き、returnします。<a>タグでは、onclickからtrueが戻るとhrefで指定したURLにジャンプします。falseが戻るとジャンプしません。
さて、リンクを押されると、親フレームとフレームBがいるか確認します。いない場合は、今回は何もしません。
次にフレームBにフレームDがいるか確認します。いれば、trueを戻してそのままジャンプさせます。
いない場合、まず、フレームBをC、Dに分割させるため、b2.htmlにジャンプします。この際、<a>タグのhrefで指定していたURLもframeDというパラメータとして渡します。フレームAでの作業はここまでです。この際、trueを戻すと別ウィンドウが開くと思うので、何もさせないためにfalseを戻します。
 次に、C、Dと分割させられたフレームBですが、このとき、HTMLソースは、b2.htmlに切り替わります。<frameset>タグにonload属性があります。<frameset>や<body>にonload属性があると、そのhtmlの表示が完了した際に、その属性の内容が実行されます。
 onload属性内では、まず、このページを表示するためのURLにパラメータがあるか確認します。これは、(windows.)location.searchを調べれば判ります。
次にパラメータにframeDが含まれているか確認にして、あれば、その値(文字列)だけを抽出します。
抽出が終われば、フレームDのURLを変更するだけです。

内容が込み入ってますが、alert()を挟むなどして、順番に追えば、理解出来ると思います。もし、この内容で大丈夫そうと思えたら、構築するシステムに合わせてカスタマイズしてみてください。

この方法でお気に召すでしょうか。

<!-- main.html -->
<html>
<frameset cols="20%,*">
  <frame name="A" src="a.html" />
  <frame name="B" src="b.html" />
</frameset>
</html>

<!-- a.html -->
<html>
<head>
<script language="JavaScript">
function func( ancObj ) {
  // フレームBがなければ、とりあえず無視
  if ( !parent )
    return false;
  if ( !(parent.B) )
    return false;
  // フレームBの中にフレームDがなければ、フレームBを更新。...続きを読む

Q親ウィンドウの別フレームを子ウィンドウから操作したい

いろいろ試しているのですが、理解不足のせいでしょうが、どうやってもできません!
内容は以下の通り(分からないのは3)です。どうぞ宜しくお願いいたします。


1:画面を、AとBの2つのフレームに分割しています。
【index.html】
<frameset>
 <frame src="A.html" name="A">
 <frame src="B.html" name="B">
</frameset>

2:Aフレーム内に記述してあるaaaアンカーをクリックすると、子画面ko.htmlを開きます。
<a href="javascript:void(0)" onclick="window.open('path=ko.html','_blank');">子画面</a>

3:ko.htmlではbbbというアンカーがあって、それをクリックすると、"親画面のBフレームにbbbで指定したリンク内容を表示したい"のです。
<a href="javascript:void(0)" onclick="opener.window.location=('B?path=/home/~/~/ZZZ.html');">開きたいファイルZZZ.html</a>
と書くと、openerはAだからAにZZZ.htmlの内容が表示されてしまうので、(全くおかしな記述をしているのかもしれませんが・・・(- -;))あちこち調べながら、
B.opener.window.locationとか、
B.opener.window.location.hrefとか、
parent.B.window.locationとか、
parent.frames[1].window.locationとか、
ほかにもいろいろやってみたのですが、出来ませんでした・・・。
このような別フレームの操作が出来る方法があれば教えてください。
宜しくお願いいたします。

いろいろ試しているのですが、理解不足のせいでしょうが、どうやってもできません!
内容は以下の通り(分からないのは3)です。どうぞ宜しくお願いいたします。


1:画面を、AとBの2つのフレームに分割しています。
【index.html】
<frameset>
 <frame src="A.html" name="A">
 <frame src="B.html" name="B">
</frameset>

2:Aフレーム内に記述してあるaaaアンカーをクリックすると、子画面ko.htmlを開きます。
<a href="javascript:void(0)" onclick="window.open('path=ko.html','_blank');">子画...続きを読む

Aベストアンサー

ご質問の場合、子ウィンドウ(ko.html)からみて、openerはフレームAになっていますから、window.opener~はフレームAに対する操作を意味することになります。

Bフレームを取得するには
window.opener.top.document.getElementsByName('B')[0].src='http://www.yahoo.co.jp/';
などのようにしてあげればよいかと…

ところで現状で、ko.htmlは開いているのでしょうか?
(こちらの環境では、ご質問の通りだと開きません)

Qsubmitボタンで他のフレームを更新する方法

submitボタンで他のフレームを更新する方法

submitボタンで他のフレームを更新する方法が分かりません。
現在、以下のようなフレーム分けされたページがあります。

<frameset cols="50%,*">
<frame name="AAA" src="A.php">
<frame name="BBB" src="B.php">
</frameset>

ここで、A.php のフォーム内のsubmitボタンクリックのタイミングでA.phpは、
C.phpに遷移するのですが、同時にB.phpもD.phpに遷移させたいです。

方法をご存知のかたがいましたら教えてください。宜しくお願い致します。

Aベストアンサー

ページ移動はlocation.hrefです。

<form action="C.php" target="AAA" onsubmit="top.BBB.location.href='D.php';">

Qフレームの片方だけを更新(リロード)させる方法を教えて下さい

ちょっとややこしいんですが...
<frame src="side_1.html" name="left">
<frame src="side_2.html" name="right">
<noframes>

そこから[side_1.html]でリンクされている[bbs.html]に移動して
その右フレームにある[bbs.html]を更新したいんですが...
更新をすると[side_2.html]になってしまうんですが
それを更新しても[bbs.html]で表示したいんです。

なにかいい方法はありますか?

Aベストアンサー

こんにちは。
window.locationのJavaスクリプトを使用するという方法でも良いのなら、
なんとかなるかもです。
参考URLの先に書いてあるほうを読まれてみてください。

後は、参考URLの後のほうのサイトにあるサンプルを
もじって、bbs.htmlの<head>~</head>区間に、

<SCRIPT Language="JavaScript">
<!--
function rld()
{
location.reload();
}
// -->
</SCRIPT>

…と入れてみては……ダメでしょうか(自信なし/汗)。

参考URL:http://wakusei.cplaza.ne.jp/twn/js/location.htm,http://www.shiojiri.ne.jp/~openspc/JavaScript/lib_/

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。


人気Q&Aランキング