WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:フレームのデータの渡し方について

0:[投稿] うめぼし [2004/04/13 17:39 ][環境:WinXP IE6 WinNTserver]

はじめまして。フレームの値の渡しに関して質問があります。

<frameset cols="20,70">
<frame src="main/menu.html" name="menu" scrolling="auto">
<frame src="main/home.html" name="main" scrolling="auto">
</flameset>
<body>
<form name="user" method="post">
    <input type=hidden name="id" value="12345">
    <input type=hidden name="pass" value="67890">
</form>

このように設定して、menu.html又はhome.htmlにデータを渡すことはできますか?
「右のフレームから左のフレームにデータを渡す」ことはできましたが、こういうやり方は過去ログを見たのですが全然わかりません。
宜しくお願いします。


1:[回答] バギンズ [2004/04/13 19:02 ]

何がしたいのでしょう?

見えないところにフォームを用意して送信したいのなら、
サイズ0のフレームを用意して、その中に送信フォームを
入れておくとかでいいと思います。

また、framesetのhtmlにJavaScriptで扱う変数のみを用意して
おきたいのなら、script要素でJavaScriptの変数のみを
定義しておけばmenuフレームからも、mainフレームからも
アクセスできます。


2:[保留] うめぼし [2004/04/13 19:53 ]

説明不足でした。すみません。

framesetのhtmlはCGIで出力していて、valueにはCGIで計算した結果が入ります。

printf("Content-type: text/html\n\n");
printf("<meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n");
printf("<link rel=\"StyleSheet\" type=\"text/css\" href=\"css.css\" title=\"Basic Style\">\n");
printf("<html>\n");
printf("<head>\n");
printf("<title>test</title>\n");
printf("</head>\n");
printf("<frameset cols=\"20,70\">\n");
printf("<frame src=\"main/menu.html\" name=\"menu\" scrolling=\"auto\">\n");
printf("<frame src=\"main/home.html\" name=\"main\" scrolling=\"auto\">\n");
printf("</flameset>\n");
printf("<body>\n");
printf("<form name=\"user\" method=\"post\">\n");
printf("<input type=hidden name=\"id\" value=\"%s\">\n",data[0]);
printf("<input type=hidden name=\"pass\" value=\"%s\">\n",data[1]);
printf("</form>\n");
printf("</body>\n");
printf("</html>\n");

フレームを使わなければ普通に値を渡すことができるのですが、
フレームを使った場合、上記のようなソースになってしまう為
うまくデータを渡すことができません。
ここで、framesetのhtmlにformを作って、このデータを
javascriptで見に行けばデータを渡すことができるかもと
思ったわけです。

自分で書いててなんだかよくわからないのですが、こんな感じです。
バギンズさんの二つ目のやり方でできそうなのでやってみます。
ありがとうございました。できたら「完了」にします。



3:[完了] うめぼし [2004/04/13 20:41 ]

カンペキに完了したわけではありませんが、
framesetを使用した場合bodyを使ってはいけないとありました。
ttp://hp.vector.co.jp/authors/VA014833/wrong1.html

根本的に知識が足りなかったようです。
出直してきます・・・
お騒がせしました。


4:[完了] AC [2004/04/13 22:17 ]

>>3
微妙に間違ってますね。
noframes要素の子要素はbody要素で、body要素は開始タグと終了タグを省略してもよい、というだけの話です。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
    "http://www.w3.org/TR/html4/frameset.dtd">
 <HTML>
 <HEAD>
 <TITLE>A frameset document with NOFRAMES</TITLE>
 </HEAD>
 <FRAMESET cols="50%, 50%">
    <FRAME src="main.html">
    <FRAME src="table_of_contents.html">
    <NOFRAMES>
       <BODY>
       <P>Here is the <A href="main-noframes.html">
                non-frame based version of the document.</A>
       </BODY>
    </NOFRAMES>
 </FRAMESET>
 </HTML>

というのは正しいHTMLです。

body要素はframesetが理解できないUserAgentのための代替なので、ここにform要素を置いてもframesetを理解できるUserAgentには意味がありません。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World