当你创建了一个新窗口时,将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()。802308.com

如果你执行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" 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()"> //form

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

function closeDep() {

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

}

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

JavaScript关闭窗口的方法相关推荐

  1. JavaScript 关闭窗口事件

    方式一:(适用与IE浏览器,而且刷新不提示,只在点击浏览器关闭按钮的时候提示) <script type="text/javascript"> window.οnbef ...

  2. C#——关闭窗口的方法——vs

    关闭窗体的四种方法 1. close():指仅关闭当前窗体,如果不是主窗体(包含主线程的窗体,并非MDI窗体)的话,是无法退出整个程序的.如果有托管线程也无法退出. 此方法会调用 dispose() ...

  3. Vim q-quit - 用 q 键关闭窗口

    我的第一个比较完整的 Vim 插件 q-quit 发布啦.地址 https://github.com/HustLion/q-quit q-quit 主要功能是用 q 键关闭窗口.免于每次关闭窗口都要 ...

  4. java关闭jframe_java jframe关闭窗口

    frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { i ...

  5. Javascript关闭当前窗口

    Javascript关闭当前窗口2007-09-03 11:11这个太简单了,window.close()就可以了: 不过它会出个提示"您查看的网页正在试图关闭窗口.是否关闭窗口?" ...

  6. JavaScript捕获窗口关闭事件

    JavaScript捕获窗口关闭事件 关键字: window.close事件 javascript捕获窗口关闭事件有两种方法 1.用javascript重新定义 window.onbeforeunlo ...

  7. 如何使用JavaScript阻止关闭窗口

    很多时候,在浏览网页时,我们需要考虑用户不小时关闭窗口的情况,特别是当用户有很重要的数据还没有保存, 我们的程序有必要对用户进行提醒.这可以通过重写window.onbeforeunload()方法来 ...

  8. css关闭窗口按钮的代码,JS+CSS实现带关闭按钮DIV弹出窗口的方法

    这篇文章主要介绍了JS+CSS实现带关闭按钮DIV弹出窗口的方法,实例分析了div弹出层窗口的实现技巧,非常具有实用价值,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了JS+CSS实现带关 ...

  9. 用javascript实现控制打开网页窗口的大小 和HTML如何关闭窗口的技巧大全

    用javascript实现控制打开网页窗口的大小 和HTML如何关闭窗口的技巧大全 打开窗口即最大化<script language="JavaScript"> < ...

最新文章

  1. 【深度学习】基于Pytorch进行深度神经网络计算(一)
  2. Android中扫描wifi热点
  3. 计算机辅助初中数学教学,初中数学合作教学如何融入计算机辅助教学
  4. 我想去做机器学习 接下来发一些机器学习实战的算法
  5. 删除文件批处理delete file.bat
  6. springmvc入门程序
  7. 从零开始学习Sencha Touch MVC应用之十三
  8. tdd(测试驱动开发)的概述
  9. 沉痛悼念游戏开发技术专家毛星云
  10. 用JAVA语言定义一个标准的学生类
  11. ROS:机器人系统设计(连接摄像头、Kinect、激光雷达、URDF建模)
  12. 利用免费的必应 Bing 自定义搜索打造站内全文搜索
  13. 梦幻西游手游海外服务器维护,梦幻西游手游本周维护:蜃影秘境增加40级与70级...
  14. 图灵mysql_图灵学院JAVA架构师-VIP-MySQL底层实现之B+树
  15. 【报告分享】2021天猫坚果消费趋势报告-CBNData(附下载)
  16. 巴西龟饲养日志-----黑壳虾
  17. MAE源代码理解 part1 : 调试理解法
  18. leetcode 前缀树
  19. 计算机专业博士推荐信模板,计算机推荐信模板
  20. memset的使用方法

热门文章

  1. tf.cast()用法总结
  2. docker 传递 profile
  3. Centos7、Redhat7 重置root密码
  4. gitlab合并分支
  5. 把Swing的Icon转换到SWT的Image
  6. 【算法-剑指 Offer】62. 圆圈中最后剩下的数字(环形链表;约瑟夫环;动态规划)
  7. 利用π/4=1-1/3+1/5-1/7+1/9+……,编程计算π近似值,直到最后一项的绝对值小于10的负5次方为止,输出π的值并统计累加的项数。
  8. NOIP 考后欢乐赛 T2 中国象棋
  9. python os.system()和os.popen()
  10. Windows下的systeminfo命令获取系统信息