JavaScript--关闭窗口
window.close()关闭指定的浏览器窗口。如果不带窗口引用调用close()函数,JavaScript就关闭当前
窗口。在事件处理程序中,你必须指定window.close(),而不能仅仅使用close()。因为不带对象名字的cl
ose()调用等价于document.close()。
如果你执行close()方法去关闭一个不是由脚本程序打开的窗口,在Internet Explorer中就会出现一个
确认对话框让用户选择是否关闭窗口。如果在历史列表中只有当前一个记录,那么在Navigator中就不会出现对
话框。因为,新窗口在会话历史中没有任何文档。 然而,如果你使用close()退出最后运行的浏览器实例,
确认对话框就会出现。看看下面在2类浏览器中出现的对话框样子:
例如:
点击下面的链接打开一个新窗口,第1个链接使用JavaScript的window.open()方法来打开一个窗口,第2
个链接简单地使用TARGET属性实现同样目的:
<A HREF="javascript:void(window.open(''tryclose.html''))">Launch Window (with
JavaScript)</A><BR>
<A HREF="tryclose.html" TARGET="_blank">Launch Window (with HTML)</A>
页面tryclose.html显示一个按钮,它负责执行window.close()方法:
<INPUT TYPE="button" VALUE="Close Window" onClick="window.close()">
当你点击第1个链接打开新窗口后,浏览器就“记住”了它是由一个脚本程序生成的。所以,当你点击按钮
时,新窗口不用再确认操作就被关闭。第2个链接是另外一回事了,它不使用任何JavaScript打开一个新窗口,
当你点击按钮时,Internet Explorer将显示一个确认对话框。然而,Navigator会立即关闭这个窗口,因为,
新窗口在会话历史中没有任何文档。
点击后关闭窗口:
许多标准的应用程序都有一个About对话框,当用户在其中任何地方点击一次鼠标时,窗口就被关闭。
<SCRIPT LANGUAGE="JavaScript">
<!--
function launchAbout() {
about = window.open("about.html", "about", "height=75,width=250");
return false;
}
// -->
</SCRIPT>
<A HREF="about.html" onClick="return launchAbout()">About</A>
点击链接后,生成一个新窗口。然后,你可以在其中点击任何地方,就关闭那个窗口。在文件about.html
的HEAD区域,添加下面的脚本程序:
<SCRIPT LANGUAGE="JavaScript">
<!--
function closeWin() {
window.close();
}
if (window.Event) document.captureEvents(Event.ONCLICK);
document.onclick = closeWin;
// -->
</SCRIPT>
依赖性窗口:
窗口的依赖性特征定义了是否窗口应该是一个当前窗口的依赖性子窗口。依赖窗口就是当它的父窗口关闭
时,它也随即关闭。
例如:
function openDep() {
win = window.open("depwin.html", "dep", "height=200,width=400");
}
如果当前窗口关闭时,或者调入一个新的URL时,我们将使用onUnload事件处理程序来关闭依赖性窗口:
<BODY onUnload="closeDep()">
注意,当前文档被卸载时,新窗口将关闭,即使当前窗口仍然打开。下面是closeDep()函数的代码:
function closeDep() {
if (win && win.open && !win.closed) win.close();
}
注意,在试图关闭前,我们必须检查窗口是否存在。