新しいウィンドウを開く/閉じる2

window.open()メソッドの戻り値は、
ウィンドウのオープンに成功すると……新しいウィンドウのwindowオブジェクト
失敗すると……null
となる。
そこで、グローバル変数としたnewWindowに、
newWindow = window.open("","","width=200,height=300")
で戻り値を入れ、それがnullでないことを確認したうえで、
HTML文書を生成している。
新しいウィンドウでは、self.close()で閉じるボタンを作り、
元のウィンドウでは、閉じるためのボタンに
onClick="if(newWindow != null) newWindow.close()"
を指定している。
新しいウィンドウが開いていること(nullでないこと)を確認したうえで
newWindow.close()で閉じる。newWindowがグローバル変数であることに注意。
実行結果


ヘッダ部分
<SCRIPT LANGUAGE="JavaScript">
var newWindow = null
function makeNewWindow()	{
	newWindow = window.open("","","width=200,height=300")
	if(newWindow != null)	{
		var msg = "<HTML><HEAD><TITLE>SUB WINDOW</TITLE></HEAD>"
		msg += "<BODY>THIS IS SUB WINDOW"
		msg += "<FORM><INPUT TYPE='button' VALUE='close' onClick='self.close()'></FORM>"
		msg += "</BODY></HTML>"
		newWindow.document.write(msg)
		newWindow.document.close()
	}
}
</SCRIPT>

ボディ部分 <FORM> <INPUT TYPE="button" NAME="openWin" VALUE="open" onClick="makeNewWindow()"> <INPUT TYPE="button" NAME="closeWin" VALUE="close" onClick="if(newWindow != null) newWindow.close()"> </FORM>