子画面がフォーカスを失ったら消す方法
-
0 名前: ecos : 2005/12/17 22:20
- 親画面から、ボタンを押すと子画面を表示します。
で、
子画面がフォーカスを失った際に子画面を消したいんですが
なかなかうまくいきません。
親画面
<HTML>
<HEAD>
<TITLE>親画面</TITLE>
<SCRIPT TYPE="text/javascript">
<!--
// サブウィンドウを開く処理
function disp(url){
window.open(url, "window_name", "width=600,height=600,scrollbars=yes,resizable=yes,status=yes");
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="サブウィンドウを開く" onClick=disp('sample_open7.html')>
<br>
<input type="text" value="Sample">
</BODY>
</HTML>
*******************************
子画面
<HTML>
<HEAD>
<TITLE>子画面</TITLE>
<SCRIPT TYPE="text/javascript">
<!--
// リンクの処理開始
function SetReturnData(){
window.close();
}
function Cansel(){
window.close();
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE="submit" VALUE="キャンセル" onclick="Cansel()">
<table border=2 cellpadding=0 cellspacing=0>
<TR onDblClick=SetReturnData()>
<td align="center">001
<td style="padding: 3px 5px">42GW-100001
<td style="padding: 3px 5px">42556668468
<td style="padding: 3px 5px">木村庄之助株式会社
<td style="padding: 3px 5px; text-align:center">0365894568
</a>
</TR>
<TR onDblClick=SetReturnData()>
<td align="center">002
<td style="padding: 3px 5px">9999-RF0001
<td style="padding: 3px 5px">3335648652
<td style="padding: 3px 5px">株式会社 朝青龍建設
<td style="padding: 3px 5px; text-align:center">0365865444
</TR>
<TR onDblClick=SetReturnData()>
<td align="center">003
<td style="padding: 3px 5px">000-RFR0001
<td style="padding: 3px 5px">333652
<td style="padding: 3px 5px">栃東印刷株式会社
<td style="padding: 3px 5px; text-align:center">0427703626
</TR>
</table>
</BODY>
</HTML>
-
1 名前: 匿名希望 : 2005/12/17 22:20
- window.onblurでフォーカスが外れた瞬間を探知しwindow.closeで消す
子画面ならば警告無しで消せると思います
以下のタグを子画面にいれたら上手く動作してくれました
<script language="JavaScript">
<!--
function kesu(){window.close();}
window.onblur = kesu;
//-->
</script>
-
2 名前: ecos : 2005/12/17 22:20
- 回答ありがとうございました。
私の方で説明不足がありましたので再度せつめいさせて下さい。
親画面より呼び出された子画面には、
検索するための機能があり、検索ボタンを押すことによって
あるテーブルを検索するためにServretにとびます。
今の状態だと、子画面の検索ボタンを押した際にも子画面が消えてしまいます。
なんとか、親画面にフォーカスがあたった時のみ消す方法はないでしょうか?
●親画面
<HTML>
<HEAD>
<TITLE>親画面</TITLE>
<SCRIPT TYPE="text/javascript">
<!--
// サブウィンドウを開く処理
function disp(url){
window.open(url, "window_name", "width=600,height=600,scrollbars=yes,resizable=yes,status=yes");
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="サブウィンドウを開く" onClick=disp('sample_open7.html')>
<br>
<input type="text" value="Sample">
</BODY>
</HTML>
**************************************************
●子画面
<HTML>
<HEAD>
<TITLE>子画面</TITLE>
<SCRIPT TYPE="text/javascript">
<!--
// リンクの処理開始
function SetReturnData(){
window.close();
}
function Cansel(){
window.close();
}
function kesu(){window.close();}
window.onblur = kesu;
// -->
</SCRIPT>
</HEAD>
<BODY>
お客様名:<INPUT TYPE="text" value="Sample">
<INPUT TYPE="button" VALUE="検索" >
<INPUT TYPE="submit" VALUE="キャンセル" onclick="Cansel()">
<table border=2 cellpadding=0 cellspacing=0>
<TR onDblClick=SetReturnData()>
<td align="center">001
<td style="padding: 3px 5px">42GW-100001
<td style="padding: 3px 5px">42556668468
<td style="padding: 3px 5px">木村庄之助株式会社
<td style="padding: 3px 5px; text-align:center">0365894568
</a>
</TR>
<TR onDblClick=SetReturnData()>
<td align="center">002
<td style="padding: 3px 5px">9999-RF0001
<td style="padding: 3px 5px">3335648652
<td style="padding: 3px 5px">株式会社 朝青龍建設
<td style="padding: 3px 5px; text-align:center">0365865444
</TR>
</table>
</BODY>
</HTML>
-
3 名前: 匿名希望 : 2005/12/17 22:20
- 返信遅れて失礼しました
親画面にフォーカスが当たったら子画面を消せばいいんですね?
ならば子画面は最初のままで親画面を変えます
と、言うことで親画面のSCRIPTタグ内を以下に変えます
<SCRIPT TYPE="text/javascript">
<!--
// サブウィンドウを開く処理
function disp(url){
kowindow = window.open(url, "window_name", "width=600,height=600,scrollbars=yes,resizable=yes,status=yes");
}
function kesu(){kowindow.close();}
window.onfocus = kesu;
// -->
</SCRIPT>