A.html、B.htmlという2つのウィンドウを開いて、Bを閉じるとAがリロードするにはどうしたらいいでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

> A.html(親)からポップアップでB.html(子)を開き、さらにB.htmlからC.html(孫)をポップアップします。


> そこでC.htmlを閉じたときにA.htmlをリロードしたいのですが…

ポップアップしたウィンドウから、親ウィンドウにアクセスする場合、opener というプロパティを参照します。
(opener は window オブジェクトのプロパティであり、親ウィンドウの window オブジェクトを参照します。)

なので、C.html の BODY onUnload 時に、opener.opener.location.reload() を実行すればOKです。
    • good
    • 0

A.html と B.html の関係によって記述は変わりますが、基本的には B.html の BODY onUnload で A.html の location.reload() を実行する、という感じでよいのではないでしょうか。



この「A.html と B.html の関係」というのを明記して頂ければ、コードの書きようもあるのですが。
(AからBをポップアップするのか、AとBは共通の親を持つサブウィンドウなのか、など)

この回答への補足

回答してくださってありがとうございます!!

補足をさせていただきます。
実は
A.html(親)からポップアップでB.html(子)を開き、さらにB.htmlからC.html(孫)をポップアップします。
そこでC.htmlを閉じたときにA.htmlをリロードしたいのですが…

本なども見てみたのですがよくわかりませんでした。
よろしくお願いします。

補足日時:2001/10/19 15:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q親ウィンドウから開いた子ウィンドウをまとめて閉じるには?

親ウィンドウから複数のサブウィンドウを開いたとします。親ウィンドウを閉じる際に、開いているサブウィンドウを全て閉じたいと思っています。

開いたサブウィンドウのwindowオブジェクトを控えておいて、親ウィンドウのunloadで順番に閉じていけばできますが、イマイチかっこいい処理ではないので、一括してcloseできる処理を考えているところです。

なにかいい方法はないでしょうか?

Aベストアンサー

親ウィンドウが開いた子ウィンドウを一括で閉じるには、
子ウィンドウの一覧を把握していなくてはなりません。

ですが、いちいち子ウィンドウの変数を作成していくのは
面倒極まりないので、以下の手順で一括処理を行えます。

0)グローバル変数で、配列を宣言する

******ここは複数回の可能性あり*******
1)子ウィンドウを開く
2)子ウィンドウハンドルを配列に入れる
***********************************

onUnload時
1)子ウィンドウハンドルを参照し、閉じられていないかチェック
2)子ウィンドウハンドルに対して close()メソッドを実行


一応、IE5上で動作確認したソースもあるのですが、
ご自分でお考えになる方が力になりますので。
どうしてもできないと言う時は、改めてソースを開示いたしましょう。

Qwindow.openで開いた別ウィンドウのリンクを親ウィンドウで開きたい

いつもお世話になっています。
index.htmlというページがあり、window.openでtest.htmlというウィンドウを開きます。
test.htmlの中に記述したリンクをindex.htmlと同じウィンドウに開きたいのですが、どう記述すればいいのでしょうか?
index.htmlを親とは見なさずparentではtest.htmlと同じウィンドウに開いてしまいます。
blankではindex.htmlとtest.htmlとも別のウィンドウに開いてしまいます。

おそらく初歩的な問題なのだと思いますが、どうかお知恵を貸して下さい。
普通ですが、test.htmlの現在の記述は以下です。
<a href="開きたいページ.html" target="_parent">ページを開く</a>

どうぞよろしくお願いします。

Aベストアンサー

こんにちは。開いた子ウィンドウの中でwindow.opener.location.href="http://www.example.com"などとなっていれば良いはずです。window.opener.location.replace(~)も有効かと。以下が参考になります。

http://shoyu-ramen23.jugem.jp/?eid=203
http://javascript.eweb-design.com/0515_os.html

以下のQ&Aも注意点として有用だと思いました。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1221399962

その他、"javascript window 子ウィンドウから location"などと検索してみて下さい。

Q子ウィンドウを開くときに、親ウィンドウ(自分)を警告なしで閉じる。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=805336
の続きというか、同じことなのですが、
以下のJavaScriptで、子ウィンドウが開かれるのですが、この際に開いた親ウィンドウを閉じたいのですが、普通に閉じると警告が出てしまいます。
警告なしで、子ウィンドウを開き、親ウィンドウを閉じる方法があれば、教えてください。

<script language="JavaScript"><!--
function MenuWindow(){
var bname = navigator.appName;
var bversion = navigator.appVersion;
var spchr = ";";
var bverS = bversion.split(spchr);
var blsr = bverS[1];
var spchr = " ";
var btype = blsr.split(spchr);
var bcat = btype[1], bver = btype[2];
if ((bcat.indexOf("MSIE")<0)||(bver<5.0)) {
res = window.alert("本プログラムは Internet Explore 5.0 以降の"+
"ブラウザ以外では動作しません。");
window.close();
} else {
//location.href="menu.html";
var indexW;
var swidth=screen.availWidth;
var sheight=screen.availHeight;
var wwidth=swidth*1.0;
var leftpos=(swidth-wwidth);
var wheight=sheight*1.0;
var toppos=(sheight-wheight);
window.resizeTo(wwidth,wheight);
window.moveTo(leftpos,toppos);
window.focus();
indexW = window.open("menu.html","",'resizable=yes,top=0,left=0');
indexW.resizeTo(swidth, sheight);

//location.href="#";
}
return true;
}
//--></script>
</head>
<body onLoad="MenuWindow()">

</body>

http://oshiete1.goo.ne.jp/kotaeru.php3?q=805336
の続きというか、同じことなのですが、
以下のJavaScriptで、子ウィンドウが開かれるのですが、この際に開いた親ウィンドウを閉じたいのですが、普通に閉じると警告が出てしまいます。
警告なしで、子ウィンドウを開き、親ウィンドウを閉じる方法があれば、教えてください。

<script language="JavaScript"><!--
function MenuWindow(){
var bname = navigator.appName;
var bversion = navigator.appVersion;
var spchr = ";";
var bverS = bversio...続きを読む

Aベストアンサー

window.open() で開かれたウィンドウじゃないウィンドウを window.close() しようとすると、警告が出ます。

実は、これには穴があって...

> window.close();

の箇所を、以下のようにちょっとおまじないを入れると

  w = window.open("","_top")
  w.opener = window
  w.close()


ね、ブラウザは、勘違いしちゃうんですよね。

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

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

Aベストアンサー

子ウィンドウに親ウィンドウ側から別のページを読み出したり、あるいは子ウィンドウ内でページを移動・更新したりすることがないのであれば、window.onunloadのイベントを拾って親ウィンドウを閉じる処理を入れておくのが良いのではないかと思います。
window.onunloadは、現在表示されているページが、ページ移動・更新・ウィンドウを閉じる動作などで破棄された時を拾いますので、子ウィンドウを閉じた時に親ウィンドウを閉じるようにもできると思います。
その場合は、子ウィンドウ側のソースに、以下のソースを追加すれば実現できます。

<script type="text/javascript"><!--
function parentclose(){
if (opener){
opener.close();
}
}
window.onunload=parentclose;
//-->
</script>

ただし、先にも書いたように、子ウィンドウを再利用して別のページを読み出したり、あるいは子ウィンドウ内のコンテンツで更新・別ページへの移動ができる場合は、それらの動作を実行された時にも、その現在表示されているページが破棄されたことを検知して親ウィンドウを閉じようとします。 そういった動作を含むサイト設計をしている場合には、この方法は使えないでしょう。
また、親ウィンドウとなるウィンドウがスクリプトなどで開かれたウィンドウではない場合(ユーザーが任意で開いたウィンドウの場合)、IEではそのウィンドウをスクリプトから閉じようとしていることの警告ダイアログが出ますし、Netscape7ではその動作自体をセキュリティエラーとして実行しないようになっています。 状況によっては、実装しても思い通りの動作にならない可能性もあるかもしれません。

参考になれば幸いです。

子ウィンドウに親ウィンドウ側から別のページを読み出したり、あるいは子ウィンドウ内でページを移動・更新したりすることがないのであれば、window.onunloadのイベントを拾って親ウィンドウを閉じる処理を入れておくのが良いのではないかと思います。
window.onunloadは、現在表示されているページが、ページ移動・更新・ウィンドウを閉じる動作などで破棄された時を拾いますので、子ウィンドウを閉じた時に親ウィンドウを閉じるようにもできると思います。
その場合は、子ウィンドウ側のソースに、以下のソー...続きを読む

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

 親ウィンドウから子ウィンドウを開き、
その子ウィンドウで子ウィンドウ(孫ウィンドウ?)を開きます。
その状態で、親ウィンドウの画面移動で、子ウィンドウと孫ウィンドウを閉じたいのですが、できません。

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

Aベストアンサー

ちょっと名前を整理させて下さいませ。
親ウィンドウ→子ウィンドウ→孫ウィンドウ
という呼び名で呼ばせて頂きます。

あくまでアドバイス程度の物しかできないので何か他にいい方法があるのかもしれないですが、TENEHTさんはJavaScriptで普通の関係ならばウィンドウ制御プログラムはできる方とお見受けしますので簡単に書かせて頂きますね。

☆案1
【1】子ウィンドウに孫ウィンドウを閉じる関数を実装する。
【2】子ウィンドウ内、BODYタグのonUnloadで上記関数を実行する。
【3】親ウィンドウから子ウィンドウを閉じると孫ウィンドウが子ウィンドウによって閉じられる。

☆案2
【1】子ウィンドウに孫ウィンドウを閉じる関数を実装する。
【2】親ウィンドウから子ウィンドウ内の孫ウィンドウを呼び出す関数を実行する。
【3】親ウィンドウから子ウィンドウを閉じる。
※子ウィンドウ内の関数はssWin.○○()という形で簡単に呼び出せます。

こんな感じの実装で如何でしょうか?


人気Q&Aランキング

おすすめ情報