• ベストアンサー

次のウインドウを開いた時に前のウインドウを閉じるタイミングについて

現在ページから次のウインドウを開く際に次のウインドウを開いたら、元のページ(現在ページ)を閉じる方法は、次のウインドウ内に、 <METAタグ内の<scriptで window.opener.window.close(); とすればよいのでしょうか? それとも、OnLoadで上のwindow.opener.window.close()とすれば良いのでしょうか? また、現在ページの段階から次のページを呼んだ瞬間に現在ページを閉じる方法はあるのでしょうか? 定石があるのでしたら知りたいです。

  • bazax
  • お礼率5% (12/228)

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

  • ベストアンサー
  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

私が実現している方法です。 呼出元ファイルに追加しています。 まずは、 ret = window.open('../aaaa,html','','location=no,menubar=no,toolbar=no, scrollbars=1,status=no,resizable=yes,top=0,left=0,height=' + hs + ',width=' + ws); if((ret == null) || (ret.closed == true)) { alert("ポップアップブロッカーが機能しました。\nポップアップブロッカー回避操作を行って下さい。"); } // 画面を強制終了する ForceClose(); ForceClose();は、以下のように、なっています。 //********************************************// // 強制画面終了 // //********************************************// var busy=false; function ForceClose(){ if(!busy){ busy=true if(navigator.appName=="Netscape"){ /* window.openで開かれたウィンドウでは警告が出ない このウィンドウ自体がwindow.openで開いたものだと思わせるようなイメージ */ window.open("","_top") window.close() }else{ if(document.all&&(navigator.userAgent.match(/MSIE (\d\.\d)/),RegExp.$1)>=5.5) { /* IE5.5以降も考え方は同じ IE6.0では普通にclose()だけでも警告なし */ var w=window.open("","_top") w.opener=window w.close() } else { /* IE4,IE5.0は[いいえ]を選択したらまた同じダイアログを表示し続ける*/ window.close() var timer=setTimeout("busy=false;forceclose()",500) } } } }

関連するQ&A

  • ウインドウ元のURLをフレームごとかえる

    小ウインドウを開いて、URLをクリックすると元のページのURLがかわるという方法を教えてください! 下記の書き方だと、フレームの中に新しいページが表示されてしまいます。 フレームごと書き換えるには、どうやって書けばよいのでしょう? <script language="javascript"> <!--// function ctrlwin() { window.opener.location.href="http://www.××.html"; window.close(); } //--> </script>

  • サブウィンドウを閉じたときに親ウィンドウのリンク先

    サブウィンドウを閉じたときに親ウィンドウのリンク先 サブウィンドウを閉じたときに親ウィンドウを別URLに 飛ばすにはどうしたらよいですか? ちなみにサブウィンドウはボタンを押したらウィンドウが 閉じるという動きです。 下記のタグで実行できるのですが、 macのIE5.0で動きません。 IE5.0で動くようにしたいのですが・・・・ 下記がタグになります。 ご教授お願いします。 ======サブウインドウタグ======= <script type="text/JavaScript"> function jump_and_close() {  opener.location.href = "別URL";  window.close(); } </script> ======親ウィンドウへのリンク======= <input type="button" value="ボタン" onClick="jump_and_close()">

  • ハイパーリンクでウインドウを開いて開いたウインドウで複数のぺージに変えれるようにしたい

    この質問と同じ様な質問があったのですが「複数のページを変える」方法がわからなかったので質問させてください。 ハイパーリンクをクリックしてサイズ指定のウィンドウを表示するところまではうまくいくのですが、複数のハイパーリンクの項目があってそれをクリックしてウインドウを出して、そのウインドウで次の項目をクリックすると同じウインドウ内でページが変わるようにしたいのですが、どうしたらよいでしょうか? 一応これがソースです。 <SCRIPT language="JavaScript"> function soll(num) { if(num==0){ window.open("http://www.yahoo.co.jp/","","width=635,height=260") } if(num==1){ opener.window.location="http://www.google.com/"; } if(num==2){ opener.window.location="http://jp.msn.com/"; } } </SCRIPT> <a href="#" onClick="0">YAHOO!JAPAN</a><br> <a href="#" onClick="1")">google</a><br> <a href="#" onClick="2">MSN</a> おわかりになる方、どうかご教授お願いいたします。

  • 小さなウインドウ開いて自動閉じることできますか?

    200 * 200のウインドウ開いて、 10秒後に自動で閉じるようなスクリプトは可能でしょうか? 以下ではオブジェクトを指定してくださいエラーになりました。どぼじで?(TT) ----------------------------------- <html><head> <script language="JavaScript1.2"><!-- function resize(w1) { w1.resizeTo(200,200); w1.status=no } //--></script> </head> <body onLoad="setTiw1out('window.close()',10000); resize(window);"> 小さなウィンドウ 10秒後に自動で閉じます。 </body></html> -------------------------------------

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

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

  • window.openerが設定出来ません。

    よろしくお願い致します。 親のページ(メインフレームのページ)から子ウィンドウを呼び出すことは出来るのですが、子ウィンドウから親ページを操作しようとすると、 Not Found The requested URL /test/mf_a.html/ was not found on this server. と出てしまいます。 子のスクリプトは以下の様になっています。 <!-- function aaa(){ window.opener.location.href="http://www.xxx.co.jp/test/mf_a.html/"; } function closeWin(){ if(opener.closed == false){ window.opener.close(); } window.close(); } //--> となり・・・ <img src="/test_img/shin.gif" width="150" height="53" border="0" onClick="aaa()" > を押すと親ページ(フレームのメイン)が切り替わるはずなんですが、うまくいきません。 親と子は同じ階層にいます。 どこがおかしいのでしょうか? 親が子を呼び出すときのスクリプトに問題があるのでしょうか? 教えてください。 よろしくお願い致します。

  • 子画面から親画面をクローズしたい

    子画面から親画面をクローズすると確認メッセージが表示されます。 非表示の方法はありますか? 現在の処理内容:  親画面:   ボタン押下時 onclick="window.opener='main';window.open('URL');return false;"  子画面:   onload時 window.opener.close(); 確認ブラウザ:IE10、Chrome43  ※IE10では表示されるが、Chrome43では表示されない。

  • 親ウィンドウの非表示

    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> よろしくおねがいします。

  • 掲示板に書き込みをすると同時にウィンドウを閉じる

    APESKINという掲示板を使っていて、次のように掲示板をカスタマイズしました。 1.BBSページ内には書き込みフォームを作らず、「書き込み」と書いたテキスト(リンク)で新規ウィンドウを開く。 2.新規ウィンドウ内のページに書き込みフォーム、書き込みをすると、さっきの親ウィンドウ内に書き込みが適用される。 ただ、このままだと新規ウィンドウの方も書き込み後、BBSページ(CGIファイルですね)に移ってしまいます。 デザイン上、新規ウィンドウはサイズ変更やスクロールバーの表示を出来なくしてるので、その中でBBSページを表示すると非常に見た目が悪いのです。 その為、書き込みをすると同時に、その新規ウィンドウを閉じるように設定したいのです。 以下は使っているスクリプトのソース。 <script type="text/javascript"> <!-- function remote(url) { opener.location.href = url } function CloseWin(){ window.close(); } // --> </SCRIPT> そして以下が書き込みを実行するSUBMITボタン(デザイン上、画像を使っています)。 <input type="image" src="xxx.jpg" name="submit" value=" Submit " onclick="javascript:remote('index.htm')"> 現段階では、親ウィンドウをREMOTEすることは出来ていますが、ウィンドウを閉じることは出来ません。 onclick内で「;」を使ってスクリプトを追加すると、REMOTEが実行されなくなります。 書き込みがされたことを明確に示す為、親ページのREMOTEは必要不可欠です。 これはどの様に対処したら良いでしょうか?

  • ウィンドウの「閉じる」ボタンは

    Windows2000 ホームページビルダーVer10 を使っています。 「閉じる」ボタンを作るとき、htmlタグで次の通り記述しました。 <FORM><INPUT type="BUTTON" value="閉じる"onclick="window.close()"></FORM> 実行しますと 「ウィンドウは表示中のWebページより閉じられようとしています。このウィンドウを閉じますか <はい> <いいえ> 」 のメッセージが現れ、<はい>をクリックするとウィンドウは閉じますが、このメッセージが現れないようにする方法は無いでしょうか? 要するに「閉じる」ボタンをクリックすれば、すぐにウィンドウを閉じたいのです。(メッセージが出るのが、うっとうしいから・・・)

専門家に質問してみよう