別ウィンドウのフレーム内URLへフォーム内容を引き継ぐ

[上に] [前に] [次に]
蓮子 [E-Mail] 2000/02/18(金) 11:28:47
ウィンドウAにフォームが有り、送信すると別ウィンドウBを開きます。
Bは2フレーム分割でURL-1とURL-2を表示します。
Aの入力内容をURL-1とURL-2に引き継ぐにはどうしたら良いでしょうか?
なるべく一般的でスマートな方法が欲しいです。よろしくお願いします。

Aurai [E-Mail] 2000/02/18(金) 13:37:11
まず思いつくのはGETの値を引き継いでCGIで取り出すことでしょうか
他にはJavaScriptを利用してURLからGETの値を抜く方法か
その場合はSubmitする前にencodeしてやらないと
IEなんかがめちゃくちゃなdecodeしてしまうので注意です
下のURLのサンプルスクリプトを参考にどうぞ
http://www.fureai.or.jp/~yomorita/sand/webmake/javascript/fake-submit.htm

あはは 2000/02/18(金) 13:49:39
やり方分からんけどクッキーとか使えんのかな?
私も知りたいッス。

蓮子 2000/02/18(金) 16:18:54
ありがとうございます。
でもちょっと難しくてわからないので教えていただいた方法と
APを他の仕様でできないかを調べてみます。

そもそも親ウィンドウAと子ウィンドウBは関係が有るけれど、
Aと、Bフレームの内容であるURL1とURL2とは無関係だから
簡単にできないのでしょうか?

Auraiさんのサンプルはエンコードの部分のサンプルですよね。

ばーばぱぱ [E-Mail] [HomePage] 2000/02/18(金) 16:25:08
クッキーで出来ると思いますよ。
<INPUT type="button" name="btn" value="ボタン" onClick="Idou()>
ボタンをクリックしたら別のページにいく。
function Idou(){
document.cookie="flag1"+"="+"a"
document.cookie="flag2"+"="+"b"
window.top.location.href='hogehoge.htm'
}

hogehoge.htmがフレームを使っているページ

URL−1のページに
function hantei(){
str=getCookie("flag1");
}
URL−2のページに
function hantei(){
str=getCookie("flag1");
}
をOnload時に行えば値を取得できる。
違ってたらごめんなさい。

蓮子 2000/02/18(金) 16:38:50
ありがとうございます。クッキーも考えてみます。
クッキーでやるとしたらデータの信頼度はどうなのでしょうか?
引き継ぐデータは全ての処理のキーになるものなので……。

同じPCの別のウィンドウB’で同じ処理を行っている場合、
それらをどうにかして判別できますか?
(ものすごく初歩的な質問でしょうか、すみません)

Aurai [E-Mail] 2000/02/18(金) 17:03:46
……こんなのですか?
http://www.fureai.or.jp/~yomorita/sand/webmake/javascript/fake-submit-v2.htm

たかぴー 2000/02/18(金) 17:58:06
ぜんぜんスマートじゃなくてもよければ

function linkDiv() {
  w = window.open();
  w.document.open();
  w.document.writeln('<HTML>');
  w.document.writeln('<FRAMESET ROWS="*,*">');
  w.document.writeln('<FRAME SRC="A1.html?arg='+document.F1.T1.value+'" NAME="A1">');
  w.document.writeln('<FRAME SRC="A2.html?arg='+document.F1.T2.value+'" NAME="A2">');
  w.document.writeln('</FRAMESET>');
  w.document.close();

蓮子 2000/02/18(金) 18:35:54
[[解決]]
>Auraiさん たかぴー さん
ありがとうございます。結局エンコードしてURLにくっつけて引き継ぐのが良いみたいですね。
たかぴーさんの方法だとURLにコードが表示されなくなるのかな??
まだ実現してないですが頑張ってやってみます。助かりました。

[上に] [前に] [次に]