• 締切済み

親でも子でもない別ウィンドウを認識する方法

お世話になります。 親や子であれば、opener等を利用して参照が可能なことはわかったのですが、全くつながりのない画面に対しての操作を行いたいと考えています。 例えば、 a.htm → b.htm x.htm → y.htm という画面の遷移があったときに、bからyやxからbを参照するなど。 w = window.open("","winB"); もし既にwinBという名前のウィンドウが既に開いていた場合、上記の記述でwinBのウィンドウオブジェクトを取得することができるのですが、winBが存在しない場合ブランクページが開きます。 対象となるウィンドウが存在したときには操作を行い、存在しなければ「画面がありません」等のメッセージを表示させたいのですが、例えばbの画面からどうやってyを認識できるでしょうか? 以上、よろしくお願いいたします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

javascriptの場合、原則自分との関連がない windowをオブジェクトとして認識できないので 非常に難しいといわざるを得ません。

de30
質問者

補足

回答ありがとうございます。 そうですよね。自分なりに色々調べてみましたが、できそうでできない、というのが自分の印象です。 (window名指定して開いてるんだからその名称で拾ってくれないの?って気持ちです。) ちなみに淡い期待を抱いて更に質問ですが、「非常に難しい」というのは、=方法がないわけではない。ってことでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 親ウィンドウの別フレームを子ウィンドウから操作したい

    いろいろ試しているのですが、理解不足のせいでしょうが、どうやってもできません! 内容は以下の通り(分からないのは3)です。どうぞ宜しくお願いいたします。 1:画面を、AとBの2つのフレームに分割しています。 【index.html】 <frameset>  <frame src="A.html" name="A">  <frame src="B.html" name="B"> </frameset> 2:Aフレーム内に記述してあるaaaアンカーをクリックすると、子画面ko.htmlを開きます。 <a href="javascript:void(0)" onclick="window.open('path=ko.html','_blank');">子画面</a> 3:ko.htmlではbbbというアンカーがあって、それをクリックすると、"親画面のBフレームにbbbで指定したリンク内容を表示したい"のです。 <a href="javascript:void(0)" onclick="opener.window.location=('B?path=/home/~/~/ZZZ.html');">開きたいファイルZZZ.html</a> と書くと、openerはAだからAにZZZ.htmlの内容が表示されてしまうので、(全くおかしな記述をしているのかもしれませんが・・・(- -;))あちこち調べながら、 B.opener.window.locationとか、 B.opener.window.location.hrefとか、 parent.B.window.locationとか、 parent.frames[1].window.locationとか、 ほかにもいろいろやってみたのですが、出来ませんでした・・・。 このような別フレームの操作が出来る方法があれば教えてください。 宜しくお願いいたします。

  • 親ウィンドウを切り替えたときの子ウィンドウの閉じ方

    画面Aから画面BをsubName = window.openで開き親子の ウィンドウが開いている状態で画面Aを画面Cに遷移させます。 この後で画面Cから画面Bを閉じる方法がわかりません。 画面A(親)⇒ 画面C(親?) | 画面B(子)

  • 子ウインドウを閉じたい

    お世話になります。 cgiアプリを組んでいます。 あるwindow(Awin - gmn00表示)が、ある画面(gmn01)を表示した際に、subwindow(Bwin)を開きました。 で、Awinが前の画面に戻ったときに、Bwinをcloseしたいのです。 Awinのgmn01には、戻るボタンがあり、戻るボタン処理でBwinをcloseすれば 当然閉じます。 ただ、それ以外にも異常系をふまえると、画面が戻る条件はたくさんあるので、 gmn00の初期処理などで Bwinが存在したら、Bwinをclodeするように試しましたが、 gmn00で、Bwinのオブジェクトが取得できません。 null になってしまいます。 なんかゴチャゴチャ書いてしまいましたが、わかっていただけますでしょうか。 ようするに、画面遷移先で開いた子ウィンドウは、遷移先が表示されている時だけ必要なので 別の画面に遷移した場合は、子ウィンドウは閉じたいのです。 やはり、遷移先の画面で、他の画面に遷移する箇所全てで 子ウィンドウのcloseをしないとダメでしょうか? アドバイス、よろしくお願いします。

  • サブウィンドウから親ウィンドウのファンクションを起動

    おせわになっております。 サブウィンドウから親ウィンドウのファンクションを起動する方法について困っています。 親ウィンドウから var subWin = window.open("a.html", "sub") でオープンしたサブウィンドウを閉じる場合に サブウィンドウから親ウィンドウの function sub_close() { subWin.close(); } を呼び出して閉じる処理をしています。 (サブウィンドウでwindow.opener.sub_close()) #これは正常に処理されます。 ここで問題なのですが、サブウィンドウがフレームの場合に、フレームセットされたHTMLから window.opener.sub_close() というような方法では親画面の操作ができないのでしょうか?(できませんでした。) 初歩的な質問で申し訳ないのですが、何かよい方法があれば教えてください。 宜しくお願いします。

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

    親ウインドウからリモコンウインドウを開き、リモコンウインドウのリンク先を親ウインドウに表示しようとしています。 親ウインドウは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はインラインフレーム内に表示されてしまい、親ウインドウ全面にて表示はできませんでした。 この場合、どのように記述するのが良いでしょうか。

  • 親タブから子タブ開いて親タブへ戻す。

    以前、ここで質問をしたものです。 まだ、解決していません。 window.opener.focusが利かないと質問したものです。 親タブ(ウインドウ)から子タブ(ウインドウ)をひらいて そのリンク先を親タブ(ウインドウ)で制御しようとしています。 自分でいろいろやりましたが、現在chromeのみで動いています。 Firefox、IEでは動いていません。 他に良い方法はないでしょうか? 現在のコードです。 親<index.html> <html> <head> <title>TOPページ</title> <script type="text/javascript"> <!-- var win; // サブウィンドウを開く処理 function disp(url){ win = window.open(url, "oya"); } // --> </script> </head> <body> <p><a href="example_sub8.html" target="_blank" onClick="disp('example_sub8.html')">testサブウィンドウを開く</a></p> </body> </html> 子ウインドウ<example_sub8.html> <html> <head> <title>testサブウインドウ</title> <script type="text/javascript"> <!-- // リンクの処理開始 function disp(url){ if(!window.opener || window.opener.closed){ // メインウィンドウの存在をチェック window.alert('メインウィンドウがありません'); // 存在しない場合は警告ダイアログを表示 } else{ window.blur(); window.opener.focus(); window.open(url,"oya"); //window.opener.location.href = url; // 存在する場合はページを切りかえる } } // リンクの処理終了 // --> </script> </head> <body> <ul> <li><a href="#" onClick="disp('index.html'); return false;">トップページ</a></li> <li><a href="#" onClick="disp('index2.html'); return false;">test2ページ</a></li> </ul> </body> </html>

  • 子画面から親画面のデータを操作するには?

    4つのフレームから成る画面より子画面を開き、 (2番目のフレームに子画面を呼び出すボタンが有ります) 子画面から親画面の2番目と3番目のフレームのデータを 操作したいのですが、上手くいきません。 window.top.opener.frames[1].formxxx.xxxx.value=xxxxx; window.top.opener.frames[2].formxxx.xxxx.value=xxxxx; で良いと思ったのですが。。。 どなたか分かる方いらっしゃったら教えて下さい。

  • 子ウィンドウより親ウィンドウのフォームをsubmit

    親ウィンドウより子ウィンドウをwindow.openにて 表示し、 parent.window.opener.document.form.コントロール名.value="111"; というふうに、子ウィンドウより親ウィンドウのコントロールに値をセットしています。これに親ウィンドウのフォームをsubmitするという処理を追加したいのですが、可能なのでしょうか?? もし可能であれば、その方法を教えてください。 よろしくお願いします!!!! また、子ウィンドウより親ウィンドウのコントロールに値をセットした場合、親ウィンドウのonchangeイベントは発生しないようなのですが、この解消方法はないでしょうか?? よろしくお願いします!!!!

  • 子Windowの操作(親Window遷移後)

    親画面Aから、子画面B(window.open("./test2.html","aaa","width=500,height=300,resizable=yes");)を開き、親画面Aが別画面Cに遷移した状態で、画面Cから子画面Bの操作はできるのでしょうか?

  • 親ウィンドウのフォームの値を変更

    showModalDialogでオープンした子画面から、returnValueで値を返すのとは違う方法で、親ウィンドウのフォームの値を変更したいと思っています。 (その子画面をオープンすると同時に、親ウィンドウのフォーム値を変更したいため) その際に    window.opener.document.formA.hiddenA.value = "aaa" という風に記述しているのですが、「window.opener.documentはオブジェクトではありません」というエラーになってしまいます。window.openで開いた子画面からだと、この方法でできたと思うのですが・・・どうすれば変更できるでしょうか?そもそも、showModalDialogでオープンした画面から親ウィンドウの値を変更すること自体がダメなのでしょうか? よろしくお願いします。