別のフレームのJavaScript変数に値を代入したい


0   名前: ken : 2006/12/21(木) 23:13  ID:IpJwYTkz
フレームAからフレームBを操作するには

parent.フレーム名.Document.〜で操作できると思いますが

フレームBのJabvaScript変数に代入する方法がわかりません。
変数名が var strTextなら

parent.フレーム名.Document.strText
parent.フレーム名.strText

など試してみましたが出来ませんでした。(><)

ご教授お願いします。m(__)m

1   名前: naokun : 2006/12/21(木) 23:13  ID:HsrxHP7o
>parent.フレーム名.Document.strText
>parent.フレーム名.strText

JavaScriptの変数はページのメンバではないので参照は無理です。

[方法1]
フレームBに隠し要素的なものを作っておき、
そこにフレームAのJavaScriptで値をセットして、
フレームBのJavaScriptで値を取り出す。
(逆にフレームBのJavaScriptでAの要素から値を取って、strText に入れてもOK)

[方法2]
両方のフレームでJavaScriptAB両方使えるようにして、
やりとりしたい strText をグローバル変数にする。

などいかがでしょう?

2   名前: 匿名 : 2006/12/21(木) 23:13  ID:5m2bGK6y
>>0
> parent.フレーム名.Document.〜で操作できると思いますが

できません(ヒント:大文字・小文字)。


>>1
> JavaScriptの変数はページのメンバではないので参照は無理です。

ブラウザ上の JavaScript では、window オブジェクトが Global オブジェクトにバインドされる。ゆえに、Global のメンバである parseInt や GLOBAL_VAR には window.parseInt、window.GLOBAL_VAR のように参照可能。

window のメンバを参照するのに「window.」をいちいち書かずとも良いのは、そのため。
http://www2u.biglobe.ne.jp/%7Eoz-07ams/prog/ecma262r3/10_Execution_Contexts.html#section-10.1.5

3   名前: naokun : 2006/12/21(木) 23:13  ID:HsrxHP7o
>>2 匿名さん

>ブラウザ上の JavaScript では、window オブジェクトが Global オブジェクトにバインドされる。ゆえに、Global のメンバである parseInt や GLOBAL_VAR には window.parseInt、window.GLOBAL_VAR のように参照可能。

ありゃりゃ、そうなんですか、勝手に決め付けてました、お恥ずかしい。
(^^;)
勉強になります。

4   名前: ken : 2006/12/21(木) 23:13  ID:lwUi4Q/B
naokunさん、匿名さん ありがとうございました。ヽ( ´ー`)ノ

いま、テストしたのですが代入できたのを確認しました。

はやいレスでとても助かりました。

オブジェクトの構造を想像で掴んでいくのは大変ですね。

先のオブジェクト構造を出してくれるソフトがあるといいんですが。

どうもありがとうございました。Ψ(´▽`)Ψ

一覧へ戻る