dポイントプレゼントキャンペーン実施中!

お世話になります。

画面(ASPで作成した画面)間でのJavaScript同士の値の受け渡しは出来るのでしょうか。

画面1から画面2を開き、画面2のJavaScriptの関数内で画面1のJavaScriptの値を変えると言った事は出来るのでしょうか。

何方かご存知でしたら、お教え下さい。
宜しくお願い致します。

A 回答 (3件)

IEとFireFoxで試してみましたけど、できそうですね。


tes1.htmlからtes2.htmlを開いた場合のソースです。
関数はボタンとかから適当に呼んでください。

// tes1.htmlのJavaScript
var value=0;
function msg () {
alert(value);
}
function openWnd () {
wnd = window.open("tes2.html");
}

// tes2.htmlのJavaScript
function count () {
opener.value++; // openerが親元
alert(opener.value);
}
    • good
    • 0
この回答へのお礼

回答ありがとう、ございます。

実現することが出来ました。

ありがとうございました。

お礼日時:2005/08/23 17:36

>出来るのでしょうか。


#1,2で答えられている様にできます。
少し補足しておくと、
画面1から画面2を開いた場合でも、ユーザによって画面2が閉じられている可能性があるので、画面2のオブジェクトにアクセスする前に、
window.closed
を使って既に閉じられていないかどうか調べる必要があります。
    • good
    • 1

No.1 の方と同じ内容ですが。



ブラウザで動作する JavaScript において Global オブジェクトは window オブジェクトです。つまりグローバル変数や関数には window オブジェクトのプロパティとしてアクセスできます。

var Global_Var = 100;
function Global_Func() { ; }

alert( window.Global_Var ); // 100
alert( window.Global_Func ); // function() { ; }
alert( window.parseInt ); // ← Global オブジェクトのメソッド

したがって,あるウィンドウで定義されたグローバル変数や関数には,その window オブジェクトを通してアクセス可能です。

なお関連して,変数は必ず var で宣言してスコープを明示して下さい。var で宣言されない変数は皆グローバル変数になりますから,思わぬアクセスによってデータを破壊される恐れがあります(特に多いのが for (i = 0; i < I; i++) のように i をグローバル変数にしてしまうミス)。
    • good
    • 0

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