• 締切済み

親ウィンドウと子ウィンドウに関して

javascriptに関して初心者なので、わからないことが多く、質問させていただきます。 今回、親ウィンドウを子ウィンドウについてわからないことがあったので、箇条書きで説明させていただきます。 1 親ウィンドウに3x3のセルがあります。一つ一つののセルがクリックできるようになっていて、セルの背景が変化します(例:元は白でクリックすると黒) 2 セルをダブルクリックすると、子ウィンドウが出てきて、その子ウィンドウも3x3のセルを持っていて、セルをクリックすると、その背景がかわります。 子ウィンドウがまだウィンドウを開くことはありません (↑ここまでは自分でできましたが、ここからがよくわかりません) 3 子ウィンドウを開いたとき、親ウィンドウのどのセルから来たのがを子ウィンドウに表示する 4 子ウィンドウのセルの背景が変わった数(この場合9個中何個かわったか)で、また親ウィンドウのクリックしたセルの背景がかわる (例:子ウィンドウのセルが1~3個黒なら、親ウィンドウのそのセルの背景が薄いグレー などです) 意味がわかりにくいかもしれませんが、よろしくお願いします。 ヒントでもかまいませんので、ご協力していただけると幸いです。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

回答がないようなので… 親子のように関連のあるウィンドウであれば、互いに操作が可能です。 親から子を操作するには  var w = window.open("child.html","child"); みたいにしておくことで、wに子ウィンドウのオブジェクトを取得できますし、子供から親ウィンドウを取得するのなら、  window.opener で可能です。 あとは通常の自ウィンドウ内の処理とほぼ同じです。 1、2はOKのようなので、3、4のごくごく簡単なサンプルです。 (方法のサンプルなので、色をクリアするとかオブジェクトの存在  や値のチェック等は一切していませんのでご注意) --------parent.html--------- <html> <head> <script type="text/javascript"> function test(evt) { var e = evt?evt.target:event.srcElement; var c, r; if (e.nodeName=='TD') { c = e.cellIndex + 1; while (e && e.nodeName!='TR') e = e.parentNode; r = e.rowIndex + 1; document.getElementById('mes').innerHTML = r + "行" + c + "列をクリック"; window.open("child.html","child","width=200,height=200"); } } </script> </head> <body> <table border=1 id="table0" ondblclick="test()"><tbody> <tr><td>1-1</td><td>1-2</td><td>1-3</td></tr> <tr><td>2-1</td><td>2-2</td><td>2-3</td></tr> <tr><td>3-1</td><td>3-2</td><td>3-3</td></tr> </tbody></table> <div id="mes" style="display:none;"></div> </body> </html> --------child.html--------- <html> <head> <script type="text/javascript"> window.onload = function() { document.getElementById('mes').innerHTML = window.opener.document.getElementById('mes').innerHTML; } function test2(evt) { var e = evt?evt.target:event.srcElement; var c, r; if (e.nodeName=='TD') { c = e.cellIndex; while (e && e.nodeName!='TR') e = e.parentNode; r = e.rowIndex; try { e = window.opener.document.getElementById('table0'); e.rows[r].cells[c].style.backgroundColor = 'gray'; } catch(e) {} } } </script> </head> <body> <div id="mes"></div> <p> <table border=1 onclick="test2()"><tbody> <tr><td>1-1</td><td>1-2</td><td>1-3</td></tr> <tr><td>2-1</td><td>2-2</td><td>2-3</td></tr> <tr><td>3-1</td><td>3-2</td><td>3-3</td></tr> </tbody></table> </body> </html>

ibuneko
質問者

お礼

ありがとうございました。 window.openerで親から子への受け渡しができました。 子から親への受け渡しの際に、tdにidをそれぞれつけて指定すれば、そのtdの背景の色を変えれるようになりますか?

関連するQ&A

  • 親ウィンドウから子ウィンドウの子ウィンドウを閉じたい

     親ウィンドウから子ウィンドウを開き、 その子ウィンドウで子ウィンドウ(孫ウィンドウ?)を開きます。 その状態で、親ウィンドウの画面移動で、子ウィンドウと孫ウィンドウを閉じたいのですが、できません。 JavaScript1--  ssWin = window.open('---'); ---- JavaScript2--- if(ssWin != null){ if (!ssWin.closed){ssWin.close(); }} ------ 子ウィンドウまでは上記の方法で閉じれるのですが、孫ウィンドウの制御となると、どうやったらいいかわかりません。  どなたかすいませんが、いい方法がありましたら、ご教授くださいませ。

  • 子ウィンドウから親ウィンドウを閉じる方法

    http://www.tagindex.com/javascript/window/sub_to_main.html こちらのように子ウィンドウから親ウィンドウを操作していますが 子ウィンドウから親ウィンドウを閉じて、子ウィンドウだけ残す方法がありましたら、教えて下さい。 よろしくお願いします。

  • 子ウィンドウの画像を変える

    親ウインドウからリンクが張ってあり、 そのリンクをクリックすると、子ウィンドウにその画像が表示されるようなJavaScriptはどう書けばいいでしょうか。 最初に親ウィンドウにある、見たい画像名をクリックしたときに、imgタグのあるhtmlファイルを新規に開き(子ウィンドウ)、次に他の画像名をクリックすると、子ウィンドウの画像が変わるようにしたいのです。 子ウィンドウを開くことは出来るのですが、画像がかわりません・・・。 よろしくお願いします。

  • 親ウィンドウと同時に子ウィンドウを閉じる

    お世話になります。 親ウィンドウからjavascriptにて子ウィンドウを開き、親ウィンドウが 閉じられたら子ウィンドウも閉じると言う処理をしております。 別サーバーにある画面を子ウィンドウとして開いた場合、閉じることができません。 これは、javascriptの仕様でしかたが無いのでしょうか? それとも、別なやり方があるのでしょうか? 1)同一サーバーにある別サイト  同一サーバーにある別サイトを子ウィンドウとして開いた場合、親ウィンドウから  閉じることが可能 2)別サーバーにあるサイト  別サーバーにあるサイトを子ウィンドウとして開いた場合、親ウィンドウから  閉じることができない 環境  Windows2000ServerSP4  IIS5.0  ASP+javascript 親画面  http://pcxxx/siteP/sample.html  同一サーバーの別サイトを開く場合   win = window.open('http://pcxxx/siteA/sample.html', 'newwin');  別サーバーのサイト   win = window.open('http://pcyyy/siteB/sample.html', 'newwin'); どなたかご存知でしたらお教え下さい。 宜しくお願い致します。

  • 子ウインドウを閉じて 親ウインドウを更新

    初歩的なことなのかもしれませんが、ご教授いただけると助かります。 やりたい動作は、 親ウインドウから<a href="" target=_blank>で 子ウインドウを開きます。 子ウインドウで処理を行った後、 ----ここからの動作がわかりません----- 子ウインドウ上のボタンかアンカータグで 親を再読み込み 子を閉じる 親にフォーカス こんな動作をJAVASCRIPTで実現可能でしょうか? 結果的に、子が閉じられ、親が再読み込みされた状態でフォーカスがあたるようにできれば最高です。 暇なときでかまいませんので、どうぞよろしくお願いいたします。

  • 親ウインドウから子ウインドウにデータを渡すには?

    はたしてこの質問がASPなのか、Javascriptでできるものなのかわからないので、とりあえずこちらで質問させていただきます。 親ウインドウの入力フォームから、入力されたデータを、子ウインドウで表示するにはどうしたらよいのでしょうか? target="_blank" は子ウインドウのサイズを指定したいので、使わない方向でお願いします。 結局、親ウインドウからデータ入力→ボタンを押す→子ウインドウに親ウインドウのデータを表示・・・ がやりたいのです。 よろしくお願いします。

  • 子ウィンドウの「閉じる(×)」で親ウィンドウも一緒に閉じる方法

    タイトル通り、親ウィンドウと、子ウィンドウがあり、子ウィンドウの「×」でウィンドウを閉じた場合に、親ウィンドウも閉じることはできるのでしょうか。 JavaScriptで「閉じる」ボタンをつけて行うことは、可能なのですが、ウィンドウの「×」はどのように処理したらよいのかわかりません。 ご存知の方がいましたら、よろしくお願いしたします。

  • 自身ウィンドウが親か子かを調べる方法

    javascriptで自身ウィンドウが親ウィンドウか子ウィンドウなのかを調べる方法ってありますか?

  • 子→親ウインドウへデータを受け渡し、子ウィンドウを閉じる。

    このような処理はできないでしょうか? 子ウィンドウはコード番号の検索用。該当のコードのリンクをクリックすると、そのコード番号を親ウィンドウのテキストボックスへ落とし込む。そのタイミングで、子ウィンドウは閉じる。 子→親ウインドウへのデータの受け渡しと、子ウィンドウのクローズを同時に行うようなイメージです。 よろしくお願いします。

  • JavaScriptの質問(子ウィンドウと親ウィンドウ)

    window.openで開いた子ウィンドウから親ウィンドウの setTimeout()や特定のJavaScriptの関数を呼び出すには どうしたらよいでしょうか。

専門家に質問してみよう