- PR -

Javascriptでサブ画面を閉じる

1
投稿者投稿内容
ラジオ
会議室デビュー日: 2004/10/20
投稿数: 19
投稿日時: 2004-11-04 21:52
いつも勉強されていただいてます
.NET(web開発)初心者です

ASP.NET(C#)でWEBシステムを開発しています。
その中で、メイン画面よりJavascript(Window.Open)でサブ画面を開いているのですが、メイン画面終了時にサブ画面(subWin)も終了したいのですがうまく動作しません。
現在、メイン画面のonunloadイベントにサブ画面を閉じる処理を記述しています。

アドバイスお願いします


<body bgColor="#996666" MS_POSITIONING="GridLayout" onunload="subWin.close();">
<TABLE id="Table2" style="WIDTH: 96px; HEIGHT: 40px" cellSpacing="1" cellPadding="1" width="300" border="1">
<TR>
<TD><FONT face="MS UI Gothic"></FONT></TD>
<TD><input type="submit" name="btnnew" value="新しい画面" id="btnnew" onclick="javascript:subWin=window.open('WebForm3.aspx?, 'child1', 'height=620,width=850,resizable=yes,scrollbars=yes');" style="width:112px;" /></TD>

</TR>
</TABLE>

</form>
</body>
ぼんじぃ
ベテラン
会議室デビュー日: 2004/05/21
投稿数: 70
投稿日時: 2004-11-04 23:07
こんばんわ。

とりあえず、onunloadイベントでalertメソッドを呼び出して
onunloadイベントがちゃんと呼び出されているか確認してみてはいかがでしょう?
ラジオ
会議室デビュー日: 2004/10/20
投稿数: 19
投稿日時: 2004-11-05 01:02
ぼんじぃさん

alertで確認しましたが、通っていました。

ためしにメイン画面onload時にサブ画面表示、メイン画面ouunload時にサブ画面を
閉じる処理を記述すると正常に閉じれます・・・

window.open処理を
画面のonload処理にattributesで記述しているのが問題なんでしょうか?

よろしくお願いします
ぼんじぃ
ベテラン
会議室デビュー日: 2004/05/21
投稿数: 70
投稿日時: 2004-11-05 07:23
scriptの中にサブウィンドウは定義されていますか?
たぶんsubWinのスコープの問題だと思いますが・・・

コード:

<script type="text/javascript">
<!--
var subWin
-->



[ メッセージ編集済み 編集者: ぼんじぃ 編集日時 2004-11-05 07:25 ]
ラジオ
会議室デビュー日: 2004/10/20
投稿数: 19
投稿日時: 2004-11-05 11:38

ぼんじぃさん


デバックすると、下記スクリプトエラーがでていました。
もっと早く調べたらよかったのですが・・・初心者で申し訳ないです。
「'subWin' は Null またはオブジェクトではありません。」エラーがでていました。

教えていただいたように「var subWin」文を追記しましたが、
前と同様スクリプトエラーになりました。


永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2004-11-05 12:06
可動サンプルです(IE6.0)

コード:
<html>

<head>
<title>hoge</title>
<script type="text/javascript">
<!--

var subWin;

function createSubWindow() {
	if(subWin == null){
		subWin=window.open('http://www.google.com/', 'child1', 'height=620,width=850,resizable=yes,scrollbars=yes');
	}
}

function deleteSubWindow() {
	if(subWin != null){
		subWin.close();
		subWin=null;
	}
}

//-->
</script>
</head>

<body>
<span OnClick="createSubWindow()">create</span>
<span OnClick="deleteSubWindow()">delete</span>
</body>

</html>


まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2004-11-05 12:13
関数にした方が良いような気がするのは私だけでしょうか・・・。

コード:

var subWin;
function openWin(){
  subWin = window.open(・・・);
}
function closeWin(){
  if(subWin){
    subWin.close();
  }
}


こんな感じで。

#あ、かぶっちゃった・・・
_________________
徒然なるままに

[ メッセージ編集済み 編集者: まゆりん 編集日時 2004-11-05 12:13 ]
1

スキルアップ/キャリアアップ(JOB@IT)