JavaScript窗口功能指南之关闭窗口

当你创建了一个新窗口时,将open()方法的返回值分配给一个变量非常重要。比如,下面的语句就是创建一个新窗口,然后立即关闭它:

  win = window.open("http://www.docjs.com/", "js");

  win.close();

  每一个浏览器窗口都清楚地与一个window对象对应,所以,当你想引用当前窗口时,你应该使用window对象。下面的语句设置当前窗口的URL:

  window.location.href = "http://www.docjs.com/";

  当你在脚本程序中放置这样一个语句时,你不需要指定window对象,因为当前窗口的存在是默认的:

  location.href = "http://www.docjs.com/";

  注意,self等价于window,所以,self.close()实际上就等于window.close()。

  window.location.href = "http://www.docjs.com/";

关闭窗口
  window.close()关闭指定的浏览器窗口。如果不带窗口引用调用close()函数,JavaScript就关闭当前窗口。在事件处理程序中,你必须指定window.close(),而不能仅仅使用close()。由于JavaScript总静态对象的作用范围,不带对象名字的close()调用等价于document.close()。

  如果你执行close()方法去关闭一个不是由脚本程序打开的窗口,就会出现一个确认对话框让用户选择是否关闭窗口。如果在历史列表中只有当前一个记录,那么在Navigator中就不会出现对话框。然而,如果你使用close()退出最后运行的浏览器实例,确认对话框就会出现。看看下面在2类浏览器中出现的对话框样子:

  点击下面的链接打开一个新窗口,其中内容是tryclose.html:

  Launch Window (with JavaScript)

  Launch Window (with HTML)

  第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()方法:

  <FORM><INPUT TYPE="button" VALUE="Close Window" ></FORM>

  当你点击第1个链接打开新窗口后,浏览器就“记住”了它是由一个脚本程序生成的。所以,当你点击按钮时,新窗口不用再确认操作就被关闭。第2个链接是另外一回事了,它不使用任何JavaScript打开一个新窗口,当你点击按钮时,Internet Explorer将显示一个确认对话框。然而,Navigator立即关闭这个窗口,因为,新窗口在会话历史中没有任何文档。

  JavaScript允许你在其他的窗口使用一段脚本程序关闭另外一个窗口。

点击后关闭的窗口
  许多标准的应用程序都有一个About对话框,当用户在其中任何地方点击一次鼠标时,窗口就被关闭。下面就对窗口使用JavaScript来实现同样的效果。首先,请看看打开新窗口的代码:

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  function launchAbout() {

   about = window.open("about.html", "about", "height=75,width=250");

   return false;

  }

  // -->

  </SCRIPT>

  <A HREF="about.html" >About</A>

  点击链接后,生成一个新窗口。然后,你可以在其中点击任何地方,就关闭那个窗口。在文件about.html的HEAD区域,添加下面的脚本程序:

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  function closeWin() {

   window.close();

  }

  if (window.Event) document.captureEvents(Event.ONCLICK);

  document.onclick = closeWin;

  // -->

  </SCRIPT>

依赖性窗口
  窗口的依赖性特征定义了是否窗口应该是一个当前窗口的依赖性子窗口。依赖窗口就是当它的父窗口关闭时,它也随即关闭。dependent特征仅仅在Navigator 4和以上版本被支持。然而,我们可以使用一小段JavaScript程序来处理交叉浏览器。让我们使用下面的函数来打开一个依赖性窗口:

  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();

  }

  注意,在试图关闭前,我们必须检查窗口是否存在。

时间: 2024-08-03 03:22:31

JavaScript窗口功能指南之关闭窗口的相关文章

右键菜单-winform点击窗口意外的位置关闭窗口

问题描述 winform点击窗口意外的位置关闭窗口 -如题 用窗体做一个图标的右键菜单.. 想点窗口意外的位置关闭窗口... 本来放在 窗口不是活动窗体的时候自动关闭 - - 可是那样点任务栏和桌面时它不会关闭qwq 解决方案 焦点不在窗口内的时候关闭就好了 解决方案二: 意外的位置指的是什么,, 解决方案三: 在Deactivate事件里关闭不行吗? 解决方案四: 试试失去焦点或者activite状态转换事件 解决方案五: activite状态转换事件? 解决方案六: 声明 焦点不在窗口内 事

winform点击窗口意外的位置关闭窗口

问题描述 --如题用窗体做一个图标的右键菜单..想点窗口意外的位置关闭窗口...本来放在窗口不是活动窗体的时候自动关闭--可是那样点任务栏和桌面时它不会关闭qwq 解决方案 解决方案二:看看能不能使用焦点失去事件来关闭窗口.解决方案三:根据某一变量的值来决定关闭哪个窗口,如n=1关闭窗口1......解决方案四:引用1楼liquoryellow的回复: 看看能不能使用焦点失去事件来关闭窗口. 不可以啊...那样点桌面和任务栏它不会改变.解决方案五:你用的是Deactivate事件吗?我试了下可以

三星A7如何开启多窗口功能? A7009 开启多窗口功能教程

1.打开步骤在[应用程序]下面我们找到[设定]之后再点击打开[多窗口]选项.        2.之后我们找到[多窗口]之后点击打开,好了现在我们使用多窗口,只要我们长按[返回键]2~3秒,将打开多窗口列表.     3.这样我们还可以拖动两个进行分屏显示操作了,如下图所示.  

三星S5如何删除多余网页窗口?Galaxy S5多余网页窗口删除教程

1.不说多点击下图的"应用程序"如下图.   2.然后进入到应用中的[互联网]中去,我们点击下图红框处图标.   3.然后如图所示,在打开浏览器中我们右边有一个[叠加方块]看到了吗.   4.点击它之后我们会弹出我们打开的窗口了,要关闭窗口我们只要点击[减号]即可关闭网页.   提示: 如果再想打开一个窗口我们只要点击[+号的叠加方块]图标.    

JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)_javascript技巧

废话不多说了,直接给大家贴代码了. // 每隔五秒定时刷新当前窗口 setTimeout("self.location.reload();",5000); //js 定时关闭窗口(ie和FF中测试过) //6秒后自动关闭当前窗口 setTimeout("window.opener=null;window.close()",6000); 下面给大家介绍下javascript定时器使用 使用定时器实现JavaScript的延期执行或重复执行 window对象提供了两个方

asp javascript 实现关闭窗口时保存数据的办法_javascript技巧

关闭窗口时保存数据的办法 <SCRIPT language="javascript">  function IfWindowClosed()  {   var win = null;  try  {  window.opener.name = "ss";  if ( window.opener.name != "ss" )  {  win = window.open("quit.asp","",

关于在asp.net中嵌入javascript关闭窗口命令的问题

问题描述 我一个弹出窗口中的关闭按钮执行的代码事件为:Response.Write("<script>opener.location.href=opener.location.href;close();</script>");为何在我这边开发环境下很好用,可移植到用户哪儿,这关闭按钮失灵了,窗口就是关不了,不知何故!!请高手帮忙! 解决方案 解决方案二:Response.Write("<script>alert('不存在的页面');wind

javascript仿XP关机效果的弹出窗口功能_javascript技巧

弹出窗口 下拉弹出窗口时会将其隐藏,关闭时会让其显示,目的是在IE中防止弹出的DIV挡不住下拉框 弹出窗口 弹出窗口

Javascript关闭窗口不提示关闭对话框

我们知道直接使用window.close()是会出现关闭提示的,这个用户体验就打折扣了, 解决方法 子窗口调用window.close()的时候就不会弹出对话框了,所以只要将窗口设一个伪父窗口,那么IE就会把当前窗口当成一个子窗口 代码如下 用 window.opener = null;就可以  代码如下 复制代码 // 不提示窗口关闭对话框 parent.window.opener = null; parent.window.open("", "_self");