• 締切済み

どのようにすれば・・・。

Funtion a()の値をFunction b()で使いたいのですがどのようにすればいいのでしょうか・・・? 具体的には以下のようにしたいと思っております。 HTMLを2ページ(page1、page2)と1つの外部Javascriptを使用。 page1でFunction a()で配列に数字を格納し、page2でFunction b()で処理を行う。 一番上でグローバル変数として配列を宣言し、 page1でFunction a()の処理を行い数字を配列に格納し、page2でFunction b()の処理を行おうと思いました。 しかし、page2でFunction b()を読み込むとき、グローバル変数として一番上で宣言したため、 再度宣言してしまうためか値が消えてしまい、できませんでした。 何か良い方法はありませんか・・・? よろしくお願いいたします。

みんなの回答

回答No.2

DOM Storage なんてのはどう?

参考URL:
http://d.hatena.ne.jp/amachang/20080924/1222239494
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

page1とpage2の関係が不明ですが、親子関係にあるなどで同じドメインなら渡したい配列を送るファンクションを用意しておいて、受け取る方がそれを呼び出せばよいのでは? 例えば、以下のようなA.htmlとB.htmlがあって、A.htmlを開くと新しくB.htmlのウィンドウが開かれ、B.htmlのスクリプトでA.htmlの配列の値(例ではa,b,c,d,e)を取得して表示します。 --------------A.html----------------- <html> <head> <script type="text/javascript"> var a = "a,b,c,d,e".split(','); window.onload = function(){ window.open("B.html", "Test");} function send() { return a; } </script> </head> <body></body> </html> --------------B.html----------------- <html> <head> <script type="text/javascript"> window.onload = function() { var i = 0, b = []; b = window.opener.send(); while (b[i]) alert(b[i++]); } </script> </head> <body></body> </html> --------------------------------- 他の方法としては、Ajaxなどでサーバを介してやりとりするとか? タイミングを管理するのが面倒そうだけど…

関連するQ&A

  • [マクロ]配列を区切り文字で変数に格納する方法

    タイトルの通りなのですが、 例えば、 A1~B10にランダムな数字が入っています。 (1)A1~B10を配列Cに格納します。 (2)配列C(1,10)を変数test1に格納します。  ※その時に各配列を/で区切る (3)配列C(2,20)を変数test2に格納します。  ※その時に各配列を/で区切る (4)test1をセルC1に記入 (5)test2をセルC1に記入 のような感じです。 配列に格納する方法はさすがに分かるのですが、区切り文字を入れて変数に格納する方法が分かりません。。。。 ご教授お願いいたします。

  • if と配列の組み合わせ

    なにやら思いつかなかったのでこちらで相談します。 配列のaと変数bがこんな感じだったとします。 int a[4]={1,3,4,7}; b=6; もしbが配列aのどの数字にも当てはまらないならこうしますよ もしbが配列aのどれかの数字に当てはまるならこうしますよ といったプログラムを作りたいのですが短く処理できる プログラムを思いつきません。(理論演算子を使えば長くなる) どうすれば短く処理できますか?

  • phpのセッションについて質問です。

    今、for文を使ってsession変数に値を入れて行く処理を作っております。そのためにセッション配列を使おうと考えておりますが、使い方が分からないので教えてください。一応、自分なりに書いてみたのですが動きませんでした。処理的には、一つ目のfor文で値をsessionの配列に一つずつ入れていき、二つ目のfor文でその格納したのを表示するようにしたいです。 <?php session_start(); for($a=1;$a<10;$a++){ $_SESSION['no'][$a]=$a; } for($b=1;$b<10;$b++){ print("こんにちわ".$SESSION['no'][$b]); } ?> ご回答のほどをよろしくお願いします。

    • ベストアンサー
    • PHP
  • LIST型に格納されている値を1つずつ取り出して処理をしたい

    LIST型に格納されている値を1つずつ取り出して処理を行う方法を探しています。 Dim a As List(Of Integer) 具体的には、1・2・3・4・5という数字が格納されているaという変数から格納された値を一つずつ取り出して、足し合わせていくループ処理を書きたいと思っています。15という結果が出せればOKです。 どなたかご助言いただけると助かります。

  • Javascriptグローバル変数の値引き継ぎ

    Javascriptで関数関係なしに処理した値を引き継ぎたいのですが 可能でしょうか? 例: test = 0; //引き継ぎたい変数 function hoge(){ //処理  a = function(){ //処理 test = 1;  } } hoge; alert(test); //「1」にしたい(関数内で処理した値を保持したい)

  • [prototype.js] Ajax.Requestの取得データをコールバック関数外で取得する方法

    下記のコードを実行すると、 'undefined' 'hello' と表示されます。 (A)の箇所でグローバル変数gTestに'hello'が格納されている事を期待するのですが、undefinedとなります。 どういった理由でこうなるのでしょうか? また、onCompleteで定義した処理内で、 値をグローバル変数に格納するにはどのような方法がありますか? 何卒よろしくお願い致します。 -- <script src="/js/prototype.js" type="text/javascript"></script> <script type="text/javascript"> var gTest; function load() { new Ajax.Request('http://~/', { method: 'get', onComplete: displayData }); alert(gTest); //(A)undefinedと表示 } function displayData(httpObj) { gTest = 'hello'; alert(gTest); //(B)helloと表示 } load(); </script> --

  • foreach文

    foreach文の使い方について質問です。変数rowには任意のデータが格納されているものとします。①と②はどのように使い分ければいいですか? ①foreach ($row as $キー名 => $キー名にリンクする配列に格納された値が格納される変数){ ループで実行される処理 } ② foreach ($row as $配列が順に格納される変数名){ ループで実行される処理 }

    • 締切済み
    • PHP
  • .NET - 配列変数を省略可能の引数にする方法

    お世話になっています。 .NETでのコーディングを行っています。 標記の件ですが、初めてなので .NETからなのか、もともとそうなのかは不明なのですが、 プロシージャの引数をOptionalで宣言すると、 省略された時の値を設定する必要がありますよね。 省略可能の引数を配列変数にしたい場合、どのように宣言したら良いのでしょうか? 初期値って言っても、今回省略可能にしたい変数は、 検索結果を格納するための変数ですので、 省略されたときには何の値も入っていなくて良いんです。 宣言部分は以下のとおりです。 Public Function CM_fun_b_Get_WeekdayNm(ByRef Wstr_WeekKb() As String, _ ByRef Wstr_WeekNm() As String, _ ByRef Wstr_WeekNmR() As String) As Boolean この、Wstr_WeekNmR()を省略可能にしたいのです。 このような場合、どうやって宣言するべきなのでしょうか? ヘルプを見たのですが、よくわからなくて・・・(;_;) 念のため、省略された時に、何らかの値を設定する方法も知りたいです。 よろしくお願いいたします。

  • perlでの配列について

    配列の配列について教えてください。 以下のようなテキストから値を取得し、A,B,Cの値をそれぞれ別の配列に格納し、A,B,Cの平均値を出す処理を行っているとします。 ----- A=100 B=200 C=300 A=110 B=210 : ----- 現状、以下のような状態です。 @arrayA=(); @arrayB=(); @arrayC=(); : (テキストを読み込み) : ・読み込んだ行がA=XXXならarrayAにpush push(@arrayA,"100"); ・読み込んだっ行がB=XXXならarrayBにpush push(@arrayB,"100"); : (各配列の要素の平均値を出す) このやり方だと、グループが増えるとそのまま行数が増えて冗長なので、グループごとの配列を1つの配列にまとめたいのです。 Webで初期値を入れた形で説明しているのはよくみるのですが、今回のように空の配列に値をいれていくにはどうすればよいのでしょうか?(そもそも宣言の仕方もわかりません)。 また、配列の配列?とした場合、以下のような処理はできるのでしょうか? (1)配列の1つ目の要素(の配列)にpushする(現状でのarrayAにpushに該当) push(@arrayAll[0],"test");

  • 変数の配列の使い方教えてください。(初心者)

    VBで関数を作ってるのですが、 Function kansuu as Long Dim a(50) as Long Do (処理) Loop End Function ↑こんな形になってまして、変数a(0)~a(50)にはそれぞれ値が入ってます。{a(50)まで全部使うとは限りません。} Do文を抜ける条件として、途中に「もしa(0)~a(50)の値が全て"0"ならDo文を抜ける」という処理を入れたいのですが、変数aの"配列要素全て"という文の記述方法が分かりません。どなたか教えてください

専門家に質問してみよう