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

2016-02-19 14:00 6 1 收藏

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐JavaScript窗口功能指南之关闭窗口,无聊中的都看过来。

【 tulaoshi.com - Web开发 】

当你创建了一个新窗口时,将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)/ABR

  A HREF="tryclose.html" TARGET="_blank"Launch Window (with HTML)/A

  页面tryclose.html显示一个按钮,它负责执行window.close()方法:

  FORMINPUT TYPE="button" VALUE="Close Window" onClick="window.close()"/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" 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

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

  function openDep() {

   win = window.open("depwin.html", "dep", "height=200,width=400");

  }

  如果当前窗口关闭时,或者调入一个新的URL时,我们将使用onUnload事件处理程序来关闭依赖性窗口:

  BODY onUnload="closeDep()"

  注意,当前文档被卸载时,新窗口将关闭,即使当前窗口仍然打开。下面是closeDep()函数的代码:

  functio

n closeDep() {

   if (win && win.open && !win.closed) win.close();

  }

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

来源:https://www.tulaoshi.com/n/20160219/1605935.html

延伸阅读
标签: Web开发
虽然和本blog的内容无关,但是还是写出来吧,希望对大家有帮助 前几天在博客园看到有人说模态窗口在ie7里面显示出现地址栏,其实这本是一件好事,而且ie的模态窗口是ie的函数,ff、opera等都不支持,我评论的原话 只是ie7增强的安全特性罢了,这个世界还真奇怪,有人说ie的安全性不强,天天骂微软,还支持ff说什么用了ff就不会被强奸,微软增...
标签: Web开发
JavaScript中的Window窗口对象 他是JavaScript中最大的对象,它描述的是一个浏览器窗口。一般要引用它的属性和方法时,不需要用“window.xxx”这种形式,而直接使用“xxx”。一个框架页面也是一个窗口。 Window窗口对象有如下属性: name 窗口的名称,由打开它的连接(a target="...")或框架页(frame name="...")或某...
标签: 电脑入门
QQ是目前国内最多用户使用的聊天软件之一,每当我们每次登录QQ时,软件都系自动弹出“腾讯迷你首页”,以方便用户查看当天的焦点新闻。但是并不是所有用户都喜欢自动弹出的窗口,如果你是QQ会员,那么可以关闭自动弹出迷你首页的。 那么非QQ会员就不可以了吗?答案当然不是啦。 非QQ会员其实可以通过借助QQ会员实现关闭“自动弹出迷你...
跟随页面弹出的窗口在规定时间内自动关闭,而且不作任何提示 代码:<script language="JavaScript" <!-- url="popup.htm" window.open(url, 'www_helpor_net', 'width=468,height=60,resizable=1,scrollbars=no,left=100,top=50') -- </script 然后,在相同目录下新建一个popup.htm网页(注意要与上面的url对应!),用于显示在弹...
标签: Web开发
style type="text/css" !-- #Layer1 {  position:absolute;  width:210px;  height:160px;  z-index:1;  left: 178px;  top: 322px;  background-color: #FFFBF0; } #content {  position:absolute;  width:200px;  height:115px;  z-index:1;  left: 0px;  top: 27px; &nbs...

经验教程

416

收藏

95
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部