2回目の質問をさせていただきます。
親窓にある複数の画像からそれぞれ子窓を開いた後、
子窓を閉じる記述がわかりません。
自分なりにトライしているのですが、どうしてもうまく動作しません。
どなたか、教えてください。(まだまだ、初心者なのでできるだけ詳しくお願い致します。)

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

A 回答 (1件)

はじめまして、yimoさん。



これは・・、単純に window.open()で子ウインドウを表示した後に、
この子ウインドウを閉じるには?(表示処理した親ウインドウ側で)
ということかな?
「複数ある画像からそれぞれ・・」というのは・・画像<img>にリンク
<a>をつけていて、それが子ウインドウを表示する操作としているのかな?

上記の通りと考えた場合の例を。

--(EX)------------------------------

<script language="JavaScript">
<!--
var Win_bord1 = null;

function map_bord1()
{
var url = "なんかアドレスを(ページや画像)";
Win_bord1 = window.open(url, 'ウインドウの名前(省略可)','属性');
}

function close_bord1()
{
if( Win_bord1 != null ) Win_bord1.close();
}

//-->
</script>

<a href="javascript:map_bord1()"><img src="画像" border="0" height="高さ" width="幅"></a><br>

<input type="button" value="子ウインドウを閉じる" onClick="javascript:close_bord1()">

--(END:EX)------------------------------

補足)

・つまり window.open()の戻り値をうけて、それ.close()と指定する
・このサンプルでは閉じる指定を明確にボタンを設けてみたけど、実際には
 「このページが閉じられたら(他ページにうつってしまったら)」とかいう
 時にやりたいかも?
 その場合は、<body onUnload="close_bord1()">とすればいいよ。

参考)
・open()の「属性」は色々指定があるよ。
 例)'width=480,height=350,status=no,scrollbars=yes,directories=yes,menubar=no,resizable=yes,toolbar=no'
 説明は省略するけど・・名前からなんとなくわかるでしょ?

がんばってね。
では。
    • good
    • 0
この回答へのお礼

Kizzさん、早速ありがとうございます。
なんとか、うまくいきました。
お世話になりました。

お礼日時:2002/02/18 18:12

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

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

QHTAで,親ウインドウを閉じると同時に子ウインドウも閉じる

HTAを使っています。
*.htaのファイルにjavascriptを下記のとおり書いています。

目的は,親ウインドウで「閉じる」というボタンを押すことで
親ウインドウを子ウインドウを閉じるという動作をさせることです。

概ね上手く動きますが,子ウインドウが既に閉じられている状況で実行すると,「リモートサーバマシンが存在しないか,利用できません。」とエラーになります。

WINDOWS2000では問題無く動きますが,XPだとエラーが表示されます。

どうすれば,子ウインドウの状況によらず正常に動作するでしょうか?


##########################################################
<input type="button" value="終了" onclick="closeWindow()" class="tukuru">

var subWin=""; //subWinをグローバル変数として宣言
function closeWindow(){

item1.style.display="";

setTimeout("end()",2000);

}

function end(){

if ( subWin.closed == false ) {;

if(subWin.name+''=='OpenWindow'){;

subWin.close();

};
};
window.close();

}

HTAを使っています。
*.htaのファイルにjavascriptを下記のとおり書いています。

目的は,親ウインドウで「閉じる」というボタンを押すことで
親ウインドウを子ウインドウを閉じるという動作をさせることです。

概ね上手く動きますが,子ウインドウが既に閉じられている状況で実行すると,「リモートサーバマシンが存在しないか,利用できません。」とエラーになります。

WINDOWS2000では問題無く動きますが,XPだとエラーが表示されます。

どうすれば,子ウインドウの状況によらず正常に動作...続きを読む

Aベストアンサー

#1さんがおっしゃるように
>これは何のオブジェクトを使っていますか?
がわからないと見当違いの回答になる可能性があります。

試しやすい方向で勝手に解釈しました。
subWin = window.open()
で子ウィンドウを開いています。
環境はxp,IE6です。

呼び出したウィンドウが存在しなくなっているので
subWinのプロパティを参照するとエラーになるの仕方がないと思います。
以下、エラーの有無によって処理を分けています。

function end(){
try{
var chkWin = subWin.closed;
subWin.close();
window.close();
}catch(e){
//エラー発生時
window.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ベストアンサー

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<th>顧客名称</th>
</tr>
<tr>
<td><a href="javascript:ich('ABC商店')">0001</a></td>
<td>ABC商店</td>
</tr>
<tr>
<td><a href="javascript:ich('DEF商店')">0002</a></td>
<td>DEF商店</td>
</tr>
</table>

もしくはNo.1様の言うようにidを設定して
【親画面】
<input type="text" name="kokyaku_cd" size="10" id="kokyaku_cd">

【子画面 function内】
window.opener.document.getElementById("kokyaku_cd").value=n;

でできると思います

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<t...続きを読む

Q画像にオンマウスで子ウインドウを開きマウスアウトで子を閉じるには

是非教えてください。

indexにある画像にオンマウスすると、子ウインドウが開き、画像からマウスアウトすると、子ウインドウが閉じるというスクリプトを作りたいです。

<td height="110" width="110" colspan="2" align="center">
<A HREF="#" onmouseover="mywin=window.open('E_sakashita.htm','','width=250,height=400');" onmouseout="window.close();">
<IMG SRC="image/E_sakashita.jpg" WIDTH="142"HEIGHT="106" ALIGN="BOTTOM" BORDER="0" NATURALSIZEFLAG="3">
</A>
</td>

としたところ、画像からマウスアウトすると、「ウィンドウは、表示中のWebページによりとじられようとしています。このウィンドウを閉じますか?」のメッセージが出ます。
マウスアウトの時には、子ウインドウだけを閉じたいのですが、どのように記述したらいいですか?

是非教えてください。

indexにある画像にオンマウスすると、子ウインドウが開き、画像からマウスアウトすると、子ウインドウが閉じるというスクリプトを作りたいです。

<td height="110" width="110" colspan="2" align="center">
<A HREF="#" onmouseover="mywin=window.open('E_sakashita.htm','','width=250,height=400');" onmouseout="window.close();">
<IMG SRC="image/E_sakashita.jpg" WIDTH="142"HEIGHT="106" ALIGN="BOTTOM" BORDER="0" NATURALSIZEFLAG="3">
</A>
</td>

としたところ、...続きを読む

Aベストアンサー

>ウィンドウは、表示中のWebページによりとじられようとしています。
閉じるウィンドウをwindowと指定しているのでこのスクリプトが書き込まれているウィンドウ自身が閉じられようとしています。
せっかく宣言しているのですから閉じるウィンドウはmywinを指定してやりましょう。

<A HREF="#" onmouseover="mywin=window.open('E_sakashita.htm','','width=250,height=400');" onmouseout="mywin.close();">


人気Q&Aランキング

おすすめ情報