• ベストアンサー

孫ウィンドウから親ウィンドウを操作

ducklingの回答

  • duckling
  • ベストアンサー率47% (88/185)
回答No.2

window.open するファンクションを「親ウィンドウ」に書き、 親(opener).ファンクション名() という形で 実行させればいいのではないでしょうか。 そのような形をとった場合、「孫」は発生せず、 子ウィンドウから発生したウィンドウは 「孫ウィンドウ」ではなく「2つ目の子ウィンドウ」、 ということになるので どの子ウィンドウを閉じても親を操作できますよ。

kamay
質問者

お礼

ありがとうございます! 無事できました^^

関連するQ&A

  • リモコンウインドウからの親ウインドウ操作

    親ウインドウからリモコンウインドウを開き、リモコンウインドウのリンク先を親ウインドウに表示しようとしています。 親ウインドウは2つのインラインフレームが存在し、そのインラインフレーム内にリモコンウインドウを開くためのリンクがあります。 そのインラインフレームには以下の記述をしてリモコンを表示させています。 function navi_win() { self.window.name="main" w = window.open('', 'Remocon', 'width=150,height=300,scrollbars=yes'); if (w != null) { if (w.opener == null) {w.opener = self;} w.location.href = 'remocon.html'; } } <a href="javascript:navi_win()">リモコン</a> これにより開いたリモコンでは以下の記述により親ウインドウに表示させようとしています。 function ctrl_wind(url) { opener.location.href = url; } <a href="javascript:ctrl_wind('hoge.htm')">hoge</a> この場合、hoge.htmlはインラインフレーム内に表示されてしまい、親ウインドウ全面にて表示はできませんでした。 この場合、どのように記述するのが良いでしょうか。

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

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

  • 親、子、孫のウインドウを同時に表示するのは?

    親と子のウンドウを同時に開くのは 親のファイルに以下のように書けば <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!--// function openWindow() { window.open("","windowname"); } //--> </SCRIPT> </HEAD> <BODY> <A HREF="ko.html" onClick=openWindow() TARGET="windowname">子ウインドウ</A> </BODY> 出来るんですが、子のファイルに同じように書くと 子のウインドウが孫に変わってしまいます。 親、子、孫を同時に表示するのには、どうすればよいか、よろしくお願いします。

  • 孫ウインドウを閉じたら親をリロード

    親ページをクリックして、サブウインドウを開き、さらにサブウインドウからクリックして孫ウインドウを開きました。 孫を閉じた時点(またはサブウインドウをリロードした時点でもよい)で、親ウインドウをリロードするにはどうしたら良いでしょうか。 孫閉じる→サブウインドウリロード→親ウインドウリロードを、孫をクリックしたことにより行いたい。 それぞれのページは不特定で、固定のURLはありません。

  • フレーム内から開いたサブウィンドウから親ウィンドウの別フレームの操作を行いたい

    メニュー、メインの2つのフレーム分けしてあるページで、メインページからサブウィンドウを開きます。 その後、以下の2アクションを同時に行いたいのです。 (1)サブウィンドウから親ウィンドウ(メイン)をジャンプさせる (main.html→main2.cgi) (2)親ウィンドウ(メニュー)の画像をAからBに変更させる 現在window.openerでメインページの変更はできているのですが、 メニューページの画像のを変更がうまくできません。 方法としては (1)サブから親ウィンドウ(画像=A)を閉じさせて、再び親ウィンドウ(画像=B)を フレームセットごとムリヤリ開き直す。 (2)何らかの形でメニューページの情報を保存しておき、Onloadでサブからのジャンプ時に変更させる (3)サブから親ウィンドウのフレーム越し操作を行なって、メニューページの画像を変更する。 どの方法が可能でしょうか、もっといい方法がありますか。 お知恵拝借させてください。よろしくお願いします。 以下、かなり省略したソース説明です。 【フレームセット→cgi。記述は省略】 <frameset>  <frame src="menu.html" name="menu">  <frame src="main.html" name="main"> </frameset> 【メニュー→html】 <img src="A"> 【メイン→html】 function open_sub(url) { /**/ w = window.open(url, 'sub') } <!--本文--> <a href="javascript:open_sub('sub.html')">サブウィンドウ</a> 【サブ→html】 function change_main() { window.opener.location.href="main2.cgi?sub"; window.opener.focus(); } <!--本文--> <A HREF="JavaScript:change_main()">メインを変更</A>

  • サブウィンドウから、親ページのリンクを操作し、自身は閉じるやり方

    すいません。javascriptに詳しい方、教えて下さい。 今、親ページからポップアップで、サブウインドウを開いています。 やりたいことは、サブウィンドウにあるcloseボタンを押したら、 親ウィンドウを指定のページに移動して表示させ、サブウィンドウ自身は閉じる動作がしたいです。 調べてみたら、opener.location.hrefというのを使えばできるみたいなのですが、こういう記述で大丈夫なのでしょうか? プレビューしてみたら、一応動いてくれているみたいですが、文法的にはどうなのでしょうか? 教えていただければ、ありがたいです。 以下にソースを記述します。 <a href="index.htm#F" onClick="opener.location.href='index.htm#F; return false;" javascript:window.close();">

  • 親ウィンドウオブジェクトを、全ての子から参照する方法

    IEでサブウィンドウがいくつも開くアプリを作成しようとしています。 子ウィンドウから親ウィンドウ内のオブジェクトを操作したいのですが、単純にopenerでは取得できなく悩んでいます。 登場するのは、 親ウィンドウ・子ウィンドウ1・子ウィンドウ2・子ウィンドウ3・・・ とあるとします。 最初は、親ウィンドウから入り、各子ウィンドウを呼び出すとします。 子ウィンドウ同士は、他の子ウィンドウを呼び出せます。 たとえば、 例1)親→子1→子2 例2)親→子2→子3→子1 と言うことが可能です。 このとき、どこの子からでも、親ウィンドウオブジェクトを取得して親の関数を操作したいのですが、例1の子1は、openerでたどれますが、例2の子1opener/opener/openerと3つたどる必要があります。 ウィンドウのたどり方により、親までのopener回数が変わるため、どう実現すれば、親までの階層を意識することなく親オブジェクトを取得できるのかわからない状況です。 何か手段はありませんでしょうか? サンプルコードがありましたら紹介お願いします。

  • window.openで開いた子ウィンドウから親ウィンドウのjavascriptを実行するには

    window.openで開いた子ウィンドウから親ウィンドウのjavascriptを実行するにはどうしたらよいのでしょうか。 子ウィンドウから <INPUT TYPE="button" value=\"実行\" onClick=opener.document.jikkou();> や <INPUT TYPE="button" value=\"実行\" onClick=opener.jikkou();> 等のボタンを作ってみましたが、無反応でした。 すいません。宜しくお願いします。

  • 別のサーバURLの子ウィンドウから親ウィンドウを制御したい。

    親ウィンドウから、別のサーバURLの子ウィンドウを開き、開いた子ウィンドウから親ウィンドウの制御を行ないたいと考えています。どのようにすればできるでしょうか? 同一サーバ内であれば、子ウィンドウのスクリプトで、 opener.name.value="Nakai"; というように記述すればよいですが、別のサーバ上のスクリプトから実行すると。 「書き込みできません」 と表示されます。(ブラウザIE6,サーバTomcat3) openerが使えないようであれば、ウィンドウ名を使用する方法などが無いか考えましたが、windowの取得方法ももわかりません。 よろしくお願いします。

  • 子ウィンドウから親ウィンドウへの値代入

    こんにちは。 asp.net2.0を使い始めて間もないのですが、子ウィンドウから親ウィンドウへの値代入で困ってます。 親ウィンドウからボタンで子ウィンドウを表示し、子ウィンドウのGridViewで選択した値を親ウィンドウの テキストボックス(サーバーコントロール)に代入したいのですが、 ['window.opener.form1.TextBox1' は Null またはオブジェクトではありません。] というエラーが出てしまいます。 ネットで見つけたサンプルは、親、子ともにウェブフォームを使用しており、確かにうまくいくのですが、 私が作っているページはマスターページの中のコンテンツフォームを親としていて、うまくいきません。 ※但し、親側のコントロールをHTMLクライアントコントロールのINPUTタグにし、 さらにフォーム名をaspnetForm(ブラウザのソース表示でみたらそうなってました。自動生成?) にして ↓子ウィンドウのグリッド選択時ソース protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { string strScript; strScript = "<script language='javascript'>"; strScript += "window.opener.form1.TextBox1.value='aaaa';"; strScript += "window.close();"; strScript += "</script>"; Response.Write(strScript); } リテラルコントロールにしたり、TextBox1.valueではなくTextBox1.textにしてみたりと いろんなパターンを試しましたが、だめでした。 コンテンツフォームでは親のサーバーコントロールへの値代入は不可能なのでしょうか? そもそも、子ウィンドウでの検索というのはASP.NETでは、あまり一般的ではないのでしょうか? 宜しくお願いいたします。 (情報、不足してましたら教えてください。)