• ベストアンサー

特定のウィンドウ名を持つウィンドウの有無を判別

お世話になります。 現在、以下のスクリプトでPageA.htmlのボタンをクリックすると 新ウィンドウを開きPageB.jspを表示し、PageA.htmlは閉じます。 /* PageA.html */ function submitPageB(){ // "WindowB"が既に存在する場合は閉じる var dummy = window.open("","WindowB",""); dummy.close(); // 待ち受けページを開く var win = window.open("NowLoading.html","WindowB","width=800,height=600,scrollbars=no,resizable=no"); // WindowBにpost形式でパラメータ送信 with(window.document.formA){ action="PageB.jsp"; method="post"; target="WindowB"; submit(); } //PageA.htmlを閉じる window.close(); } これを"WindowB"が存在するか判別して "WindowB"がなければそのまま開く、 "WindowB"があればconfirmで新たに開くか開かないかを 選択させるようにしたいのですが、 "WindowB"というウィンドウ名のウィンドウを 取得する方法がわからないため実現できません。 var blWin = true;//※ここで"WindowB"が存在するかどうかを取得したい if(!blWin || confirm("既に開いています。新たに開きますか?")){ submitPageB(); } 特定のウィンドウ名のウィンドウの有無を知る方法、 あるいは上記のことを実現させるよい案はないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

できないと思います。

sakuhat
質問者

補足

お答えありがとうございます。 やはり無理なんですかね・・・

その他の回答 (1)

  • m035
  • ベストアンサー率44% (38/86)
回答No.1

参考URLを使えばできるはず。

参考URL:
http://allabout.co.jp/career/javascript/closeup/CU20020808/
sakuhat
質問者

補足

お答えありがとうございます。 すいません。少し説明不足でした。 その方法は知っているのですが、 今回の場合はボタンクリックでPageB.jspを開いた後、 PageA.htmlを閉じてしまいます。 PageA.htmlを閉じなければもちろんそのウィンドウ上や "WindowB"からはそれぞれのウィンドウの有無を判別できるのですが、 関係ないウィンドウからPageA.htmlを表示させた場合、 "WindowB"とは親子関係がないのでこの方法は使用出来ません。 親子関係のないウィンドウからで 特定のウィンドウ名を持ったウィンドウが 開いているかどうか 判別できる方法を探しております。 よろしくお願いします。

関連するQ&A

  • 子ウインドウを開き、BLOBをダウンロードして、親ウインドウから閉じたい

    大変恐縮ですが、質問です。 window.openで子ウインドウ(jsp)を開き、その中でDBからBLOBをダウンロードするサーブレットを実行して、IEの中でワードを開きます。 親ウインドウで、そのダウンロードしたワード(IE)を閉じたいのです。 ◆子ウインドウを開く win1 = window.open("../jsp/blob001.jsp","a",~~~ ◆親ウインドウで子ウインドウが存在するか確認 function win_closed(winVar) { /* 子ウインドウから親ウインドウを調べたい場合は win_closed(window.opener) と書いてください Support: http://game.gr.jp/js-ml/samples/200102/openerTest.html */ var ua = navigator.userAgent if( !!winVar ) if( ( ua.indexOf('Gecko')!=-1 || ua.indexOf('MSIE 4')!=-1 ) && ua.indexOf('Win')!=-1 ) return winVar.closed else return typeof winVar.document != 'object' else return true } ~~~~~~~~~ if(!win_closed(window.win1)){ ココで子ウインドウを閉じるたい } window.win1.close();では、閉じれません。アドレスがjsp/blob001.jspではなくなっていてservlet/blobinsになっているからだと思います。 説明が下手ですいませんが何卒宜しくお願い致します。

  • ウィンドウ名からウィンドウオブジェクトを取得

    対象ブラウザはIE6~8です。 2つのウィンドウA/Bが連動するプログラムを作っています。 ウィンドウAにはウィンドウBを開くためのボタンがあり、 Aより先にBが開くことはありません。必ずAからBが派生します。 Aはwindow.openの戻り値を保持することで、B内部のJavaScriptにアクセスします。 Bはwindow.openerプロパティを経由することで、A内部のJavaScriptにアクセスします。 しかし、Aには自身をリロードする機能があり、 リロードすると保持していたBのウィンドウオブジェクトを失ってしまいます。 そこでAがリロードし終わったとき(onloadのタイミング)に、 何とかしてBのウィンドウオブジェクトを取得しなければなりません。 window.openではウィンドウに名前を付けることができますが、 その名前からウィンドウオブジェクトを取得するような、 document.getElementByNameみたいなメソッドは存在しないでしょうか? あるいは、BからAの監視を続け、リロードが終わった時に window.opener経由でメッセージを送る等の処理を実現する手段はないでしょうか? よろしくお願い致します。

  • 子ウインドウのスタイルについて

    すみません、分かる方、教えてください。 次のようにJSP内のJavaScriptの関数にて、スタイルを指定しても子ウインドウがサイズ変更できてしまいます。 var style = "width=630,height=400,resizable=0, location=0, menubar=0,scrollbars=yes"; WindowObject = window.open(url,"MAIN",style); resizable=noとしても同様でした。scrollbars=noとした場合はスクロールバーなしとなるのですが何故でしょうか?

  • 親ウインドウのアドレスバーを消したい

    親ウインドウから子ウインドウを呼び出す時に、 LinkWin=window.open('newwin.html','_blank','MENUBAR=NO,SCROLLBARS=1,RESIZABLE=1'); として、アドレスバーを消す事が可能ですが、 それを親ウインドウでやりたいのです。 ソースを以下のように書いてみたのですが IE6.0では動作しません。 親ウインドウでは無理なのでしょうか? if(navigator.appName == 'Netscape'){ //自分自身をwindow.openで開いたと思わせる window.open('','_top','menubar=no,resizable=1'); } else if(navigator.appName =='Microsoft Internet Explorer'){ var w=window.open('','_top','menubar=no,resizable=0'); w.opener=window } 以上、宜しくおねがいします。

  • ウィンドウのタイトル

    いつもお世話になります。 window.openでExcelファイルをブラウザで開いているのですが、ウィンドウのタイトルバー(青い部分)にURLが表示されています。 そのタイトルバーのURLを指定の文字にしたいのですが、可能でしょうか? 以下のようなスクリプトでウィンドウを開いています。 function FileOpen(sUrl) { if (sUrl != "") { var oWin = window.open(sUrl,"_blank","titlebar=no,toolbar=no"); } } よろしくお願いします。

  • 親ウィンドウの非表示

    JavaScriptで、 「アドレスバー・ツールバー等非表示でトップ画面を開く」 を以下のように1画面クッションをおいて うまく非表示になったのですが、 クッションをおいた画面が2秒ほど表示されてしまいます。 うまく非表示にする方法をご存知のかた教えてください。 <script language="javascript"> <!-- window.open("","","menubar=no"); if (document.all&&(navigator.userAgent.match(/MSIE (\d\.\d)/),RegExp.$1)>=5.5) {   var w=window.open("","_top")   w.opener=window   w.close() } else {   window.close() } //--> </script> よろしくおねがいします。

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

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

  • window.open オートコンプリートOFF について。

    window.open オートコンプリートOFF について。 JavaScriptの初心者です。 社内サイトのリンクから、window.openにて指定したURLを新規ウインドウを開き、(社内サイトのプログラムにて)そのウインドウのオートコンプリートをOFFにすることは可能かを調査しております。 自分なりに考えて下記プログラムを作成してみましたが、 var win = window.open("URL","_blank","menubar=no,toolbar=no,location=no"); if (win) win.document.forms[0].autocomplete = "off"; 2行目のところで「アクセスが拒否されました」とエラーになってしまいます。 実現する方法をご教授願います。よろしくお願い致します。

  • 子ウィンドウの存在確認

    子ウィンドウが開いていない場合にのみ子ウィンドウを開くような下記の処理があるとします。 function OpenSubWindow() { if(!w.closed()){ alert('閉じろ!'); }else{ w = window.open("a.html","sub","resizable=no,scrollbars=no"); } } この場合、当然のことですが、変数wはelseの中で初めて初期化されるため、ifの条件でオブジェクトが存在しないことによりエラーが発生します。 でも、"sub"というname属性のウィンドウが開いているかどうかを確認したいのですが、どうすればよいのでしょうか?wを初期化する方法が何かあるのでしょうか?それとも、subウィンドウのopen/closeの状態を管理するロジックを作りこまないといけないのでしょうか?

  • javascriptで別ウインドウを開いたのですが背景設置が上手くいきません。

    いつもお世話になっております。 JavaScriptを使用し別ウインドウで画像を表示させているのですが、 そのウインドウの背景が上手く設定できません。 どのように編集すればよいでしょうか? 現在の状態は以下の通りです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>aaa</title> <script language="javascript"> <!-- function OpenWindow(){ var width = document.images['00'].width + 228; var height = document.images['00'].height +254; subWin = window.open("","subWin","status=no,menubar=no,toolbar=no,scrollbars=no,resizable=yes,screenX=0,screenY=0,width=" + width + ",height=" + height + '"'); with(subWin.document) { open(); write("<html><head><title>sample1</title></head>"); write("<body onload='window.resizeTo( document.images[00].width + 40,document.images[00].height + 120)'><div align='center'><img id='00' src='b/1b.jpg'><br>"); write("<button type='button' onclick='window.close()'>閉じる</button></body></div></html>"); close(); } } --> </script></head> 宜しくお願いします。

専門家に質問してみよう