違うフレームからグローバル変数を参照するには?
[上に]
[前に]
[次に]
眠兎
[E-Mail]
1999/11/11(木) 13:57:03
質問です。
グローバル変数をまとめたjsファイルを用意して、フレーム1
でこの中のある変数を変更します。
その値をフレーム2で参照しようとしたのですが、デフォルト
しか参照してくれません。
これって同フレーム内でしか変更した値を参照できないと
いうことですか?
あと、JavaScriptでCGIから送られてきたデータを取得
することはできますか?
Nobu3
[E-Mail]
[HomePage]
1999/11/11(木) 18:42:47
対象フレームが、参照したいフレームからみて「parent.jsframe」のとき、
対象フレームの変数は、
「parent.jsframe.変数名」
で、参照できます。
変数もオブジェクトなので。
CGIで作成するページなら、スクリプトを直に書いてしまえば良いと思いますが・・・。
無責任官庁
1999/11/15(月) 16:13:59
> その値をフレーム2で参照しようとしたのですが、デフォルト
> しか参照してくれません。
> これって同フレーム内でしか変更した値を参照できないと
> いうことですか?
同フレーム内という訳では無く、プログラムが終了しているかどうか、
だと思います。
一旦プログラムが終了して待機状態になったあとは、
変数などは全てクリアされてしまいます。
なので、通常、他の関数や他のフレームに値を渡したい場合で、
処理が一旦中断する場合(ユーザーのクリック待ちとかね)は、
<input type=hidden name=work value="">
というようなダミーのフォームを作成し、
そこに値をセットして渡します。
そういうコトですよね?
眠兎
1999/11/16(火) 19:40:03
実際やりたいこととしては次の通りです。
めちゃくちゃ簡単に書きますが、
*****Global.js****************
var gIndex="index.html";
*****Script.js****************
function Test(CF){
gIndex=CF;
}
*****frame1*******************
・・・略・・・
<A HREF="JavaScript:Test("test1.html")>
<IMG SRC="+++.gif"></A>
<A HREF="JavaScript:Test("test2.html")>
<IMG SRC="@@@.gif"></A>
1.frame1でボタンが押されたら、Test関数で
Global.js内のgIndex変数を書き換える。
2. frame2でこの書き換えられた後のgIndex変数
を参照したい
としたいのですが、frame2でgIndexを参照すると
gIndex=index.htmlが参照されてしまうわけです。
官庁さんの隠しフィールドを使ったやつって
別のフォームに送ることができます?
また、それをCGIを使うことなく取得することは
可能でしょうか?
無責任官庁
1999/11/16(火) 23:28:32
---フレーム設定---
<FRAMESET COLS="50%,50%" BORDER=1>
<FRAME SRC="testframe1.html" NAME="FRAME1">
<FRAME SRC="testframe2.html" NAME="FRAME2">
</FRAMESET>
---FRAME1---
<FORM NAME=FORM1>
<INPUT TYPE=text NAME=hensuu VALUE="">
</FORM>
<A HREF="#" onClick="document.FORM1.hensuu.value='test1.html';return false;">
あああ</A>
<A HREF="#" onClick="document.FORM1.hensuu.value='test2.html';return false;">
いいい</A>
---FRAME2---
<FORM NAME=FORM2>
<INPUT TYPE=button value="値を取得"
onClick="document.FORM2.KEKKA.value=window.parent.FRAME1.FORM1.hensuu.value;">
<INPUT TYPE=text NAME=KEKKA>
</FORM>
こんな感じ。とりあえずこれを動かしてみてください。
これは分かりやすくする為に type=text ですけど、
type=hidden でも同じです。
眠兎
1999/11/17(水) 14:15:52
[[解決]]
Nobu3,官庁さんありがとうございました。
教えていただいたことを利用して、自分でもいろんな
場合に使えるように考えていきたいと思います。
Cしかやったことがないので、オブジェクトに
どうしてもまだ慣れないです(^^;
それではまた分からないことがあったら質問しますので
よろしくお願いします。
ありがとうございました!
[上に]
[前に]
[次に]