`

关闭浏览器窗口深入研究

阅读更多

一,研究的起因

 

今天中午左右,Software@China群内朋友问:如何关闭firefox窗口,笔者尝试几次,均未能成功关闭firefox窗口,

 

二,测试浏览器

 

1,chrome5.0

2,ie7

3,opera10.5

4,safari5.0

 

三,测试

 

序号 关闭代码 需要确认 无任何作用 无需确认 测试
1 window.close() IE7 firefox,chrome,
safari
Opera Close
2 window.opener=null;
window.open('','_self');
window.close();
firefox IE7,Opera,
chrome,safari
Close
3 window.open('','_self');
window.close();
firefox IE7,Opera,
chrome,safari
Close
4 window.opener=null;
window.close();
IE7 firefox,safari chrome,Opera Close
5 var opened=window.open('about:blank','_self');
opened.opener=null;
opened.close();
firefox safari,IE7,
chrome,Opera
Close
6 var opened=window.open('about:blank','_self');
opened.close();
safari,firefox IE7,
chrome,Opera
Close

 

 

 

 

 

测试源码:

 

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE>关闭浏览器窗口深入研究 by sunflower</TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
	<script>
	</script>
 </HEAD>
 <BODY>
	<table border="1" CELLPADDING="0" CELLSPACING="0">
		<tr height="15px">
			<th >
				序号
			</th>
			<th >
				关闭代码
			</th>
			<th width="70px">
				需要确认
			</th>
			<th>
				无任何作用
			</th>
			<th>
				无需确认
			</th>
			<th>
				测试
			</th>
		</tr>
		<tr height="25px">
			<td>1</td>
			<td>
				window.close()
			</td>
			<td width="20px"  align="center">
				IE7
			</td>
			<td align="center" >
				firefox,chrome,<br />safari
			</td>
			<td align="center" >
				Opera
			</td>
			<td width="80px" align="center">
				<a href="javascript:window.close()">Close</a>
			</td>
		</tr>
		<tr height="25px">
			<td>2</td>
			<td>
				window.opener=null;<br />window.open('','_self');<br />window.close();
			</td>
			<td width="20px"  align="center">
				&nbsp;
			</td>
			<td align="center" >
				firefox
			</td>
			<td align="center" >
				IE7,Opera,<br />chrome,safari
			</td>
			<td width="80px" align="center">
				<a href="javascript:window.opener=null;window.open('','_self');window.close();">Close</a>
			</td>
		</tr>
		<tr height="25px">
			<td>3</td>
			<td >
				window.open('','_self');<br />window.close();
			</td>
			<td width="20px"  align="center">
				&nbsp;
			</td>
			<td align="center" >
				firefox
			</td>
			<td align="center" >
				IE7,Opera,<br />chrome,safari
			</td>
			<td width="80px" align="center">
				<a href="javascript:window.open('','_self');window.close();">Close</a>
			</td>
		</tr>
		<tr height="25px">
			<td>4</td>
			<td>
				window.opener=null;<br />window.close();
			</td>
			<td width="20px"  align="center">
				IE7
			</td>
			<td align="center" >
				firefox,safari
			</td>
			<td align="center" >
				chrome,Opera
			</td>
			<td width="80px" align="center">
				<a href="javascript:window.opener=null;window.close();">Close</a>
			</td>
		</tr>

		<tr height="25px">
			<td>5</td>
			<td>
				var opened=window.open('about:blank','_self');<br />opened.opener=null;<br />opened.close();
			</td>
			<td width="20px"  align="center">
				
			</td>
			<td align="center" >
				firefox
			</td>
			<td align="center" >
				safari,IE7,<br />chrome,Opera
			</td>
			<td width="80px" align="center">
				<a href="javascript:var opened=window.open('about:blank','_self');<br />opened.opener=null;<br />opened.close();">Close</a>
			</td>
		</tr>

		<tr height="25px">
			<td>6</td>
			<td>
				var opened=window.open('about:blank','_self');
				<br />opened.close();
			</td>
			<td width="20px"  align="center">
				
			</td>
			<td align="center" >
				safari,firefox
			</td>
			<td align="center" >
				firefox,IE7,<br />chrome,Opera
			</td>
			<td width="80px" align="center">
				<a href="javascript:var opened=window.open('about:blank','_self');opened.close();">Close</a>
			</td>
		</tr>
	</table>
	
 </BODY>
</HTML>
 

 

 

 

四,结论

 

1,firefox如果未开启允许window.close关闭窗口,window.close无任何效果,即使使用window.open切换窗口,获得控制权,firefox仍然不允许你关闭窗口

 

2,从(三)中的结论得知,(三)2、(三)3、(三)5 代码兼容性更好一些,除了firefox外,均可无提示关闭

 

3,比较(三)2、(三)3、(三)5 ,其中(三)2、(三)3 对于frefox无任何反应,而(三)5会打开一个about:blank的空白页,给用户的感觉是:用户的操作有了回应,虽然并不完美,但原窗口没有了!

 

 

4,opera对于javascript关闭窗口,基本没有安全限制,在chrome,IE,firefox认为危险的操作,opera不会做任何提示!

 

 

 

-----------------------------------------------------------------------------------------

 

 

 

 

 

如果您发现更好的方法,留言或者联系我:QQ 527067272,或者email: zhangxuehuaemail # gmail dot com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9
2
分享到:
评论
10 楼 gnomewarlock 2010-07-05  
sunflowers 写道
javaDevil 写道
你这个测试有错误


请问错误在哪里?以方便我和他人改正,非常感谢!!

最烦这种卖关子的S B 。 你说人家有错就指出来。中国做技术的就J8这德性
9 楼 sunflowers 2010-07-04  
javaDevil 写道
你这个测试有错误


请问错误在哪里?以方便我和他人改正,非常感谢!!
8 楼 javaDevil 2010-07-03  
你这个测试有错误
7 楼 sunflowers 2010-07-01  
xiaojing3517 写道
http://zz.ganji.com/diannao/10062919_177020.htm

你看这个网站最下面的那个关闭窗口按钮。


那个按钮后台代码

<input type="button" class="closebtn" value="关闭窗口" onclick="window.opener=null;window.close();">

在测试(三)2中已讨论过了,兼容性不太好
6 楼 xiaojing3517 2010-07-01  
http://zz.ganji.com/diannao/10062919_177020.htm

你看这个网站最下面的那个关闭窗口按钮。
5 楼 tomcatlee 2010-07-01  
window.open('','_parent','');
window.close();
4 楼 sunflowers 2010-07-01  
somefuture 写道
第六个也要确认的


你在那个浏览器什么版本下测试的??谢谢
3 楼 sunflowers 2010-07-01  
somefuture 写道
第六个也要确认的


本文【二】中已标注了测试的浏览器,笔者未在其他版本测试
2 楼 somefuture 2010-07-01  
第六个也要确认的
1 楼 somefuture 2010-07-01  
第四个IE也直接关了啊

相关推荐

    浏览器多窗口处理——

    在日常使用中,我们经常需要同时打开多个浏览器窗口,以便于管理不同的网页或任务。这涉及到窗口的创建、切换、管理和关闭等操作,对于提高工作效率和组织信息有着显著的帮助。在本文中,我们将深入探讨浏览器的多...

    用C#实现的一个多窗口浏览器

    1. **多窗口支持**:与传统的单窗口浏览器不同,这个应用允许用户在同一时间打开多个独立的浏览器窗口,每个窗口都有自己的选项卡集合,这样用户可以在不同的任务之间轻松切换,而不会混淆各个页面。 2. **多选项卡...

    jquery弹出窗口效果 比较全 兼容所有浏览器

    jQuery提供了一种简单易用的方式来创建这些动态效果,无需深入研究底层的CSS和JavaScript代码。通过使用jQuery,开发者可以轻松实现各种复杂的弹出窗口动画,如淡入淡出、滑动、缩放等。 "功能齐全"意味着这个资源...

    C#个人浏览器源代码

    【C#个人浏览器源代码】是一个基于C#编程语言实现的个人化网络浏览器项目,它...通过深入研究这个源代码,开发者可以学习到如何利用C#构建一个功能完善的个人浏览器,同时提升对Web开发、网络编程和系统级交互的理解。

    C# 浏览器 源代码 browser

    这增加了用户的便利性,让他们可以快速访问或关闭浏览器,而无需在任务栏上频繁切换窗口。 基础的浏览器雏形通常包括以下关键组件: 1. 地址栏:用户输入URL的地方,程序需要解析URL并发起网络请求。 2. 响应处理:...

    易语言SD_SOTT浏览器

    在源码分析方面,我们无法直接查看具体内容,但从这些标签中可以推测,易语言SD_SOTT浏览器的源码会包含浏览器窗口的创建、事件处理、页面加载、多线程(用于并发处理多个页面)以及文件操作等相关代码。对于学习...

    c# 版多页面浏览器

    在IT领域,C#是一种广泛使用的面向对象的编程语言,尤其在Windows应用程序开发中占据...不过,实际开发中可能还会涉及网络编程、HTTP协议理解、UI设计原则等多个方面,因此深入研究并持续学习是提升项目质量的关键。

    C# 基于谷歌Chrome内核 cefsharp web浏览器 多标签实例源码

    在IT领域,尤其是在桌面应用程序开发中,经常需要集成网页浏览功能。C# 是一种常用的编程语言,而`cefsharp`库则为C#开发者提供了一种...通过深入研究和实践这个源码实例,开发者可以提升自己的C#和CEF应用开发技能。

    闪虎浏览器多页版(易语言)

    8. **源码开放**:作为一个易语言源码项目,这个浏览器为学习和研究易语言开发提供了实践案例,有助于开发者深入理解易语言的使用和浏览器的实现原理。 总的来说,"闪虎浏览器多页版(易语言)"是易语言编程实践的...

    网络人浏览器.rar

    多页面浏览器的概念,是指在单个浏览器窗口内可以同时打开并显示多个网页的浏览模式。与传统的每次只能打开一个页面的浏览器相比,多页面浏览器允许用户在不用切换窗口的情况下轻松地在多个页面间切换,减少了操作的...

    基于IE内核的浏览器,内含源码

    通过阅读和研究源码,开发者可以深入理解浏览器的工作机制,学习如何优化内核,甚至可以根据自己的需求定制浏览器功能。这不仅有利于技术的传承,也有助于推动技术创新。 然而,随着Web技术的发展,HTML5、CSS3等...

    傲游浏览器多标签操作提速技巧.docx

    多标签模式使得用户可以在同一个浏览器窗口中轻松地切换和管理多个网页,极大地提高了浏览效率。本文将详细介绍如何利用傲游浏览器的一些技巧来提升多标签操作的速度和便捷性。 1. 连续打开多个标签: 在浏览网页时...

    火山PC创建多窗口例子

    2. **多窗口实现**:学习如何在火山PC中创建和管理多个独立的窗口,包括窗口的创建、显示、隐藏、关闭以及窗口间的数据交换。 3. **源码解析**:通过阅读和分析"必看源码.v",掌握关键的编程技巧和框架使用方法。 4....

    在MFC中嵌入cef浏览器demo

    在MFC(Microsoft ...通过研究和调试这个示例,你可以深入理解如何在MFC中有效地集成CEF浏览器,这对于开发带有Web界面的桌面应用非常有用。同时,这个项目也可以作为一个起点,根据自己的需求进行扩展和定制。

    易语言多标签浏览器

    这个“易语言多标签浏览器”的源码提供了一个学习和研究易语言开发浏览器应用的良好平台,尤其是对于那些对易语言感兴趣,或者想要自己动手编写浏览器的初学者来说。通过对源码的分析和学习,可以深入了解易语言的...

    C#自作浏览器选项卡

    通过研究这些代码,你可以深入理解如何在C#中实现自定义浏览器的选项卡功能,并解决可能遇到的特定问题。如果遇到困难,可以查阅微软的官方文档、在线论坛和Stack Overflow等资源,寻找解决方案和最佳实践。

    window.open父子窗口传值问题

    在Web开发中,`window.open` 是一个JavaScript函数,它用于打开新的浏览器窗口或标签页。这个函数在处理用户交互,比如点击按钮打开新页面,或者在不同窗口间传递数据时非常常见。当我们谈论“window.open父子窗口...

    简易浏览器3.0(C#+VB.NET完全开源)

    这款浏览器的设计灵感来源于Internet Explorer 7(IE7),因此,它具备了IE7的一些核心特性,如选项卡式浏览,这使得用户可以在同一浏览器窗口内轻松切换多个网页,提高多任务处理效率。 在技术实现上,C#和VB.NET...

    silverlight 非模态的悬浮窗口

    这个组件包含源代码文件,这意味着开发者可以深入研究其内部工作原理,并根据需要进行定制。将组件的源代码添加到新的Silverlight项目中,开发人员可以轻松地在其应用中集成这种功能。 在实现非模态的悬浮窗口时,...

    基于duilib的多标签浏览器

    如果是源代码,那么可以深入研究其设计思路和代码实现,例如如何使用duilib创建窗口、添加标签控件、处理用户交互等。 总的来说,"基于duilib的多标签浏览器"是一个基础的桌面浏览器实现,它利用duilib的UI框架来...

Global site tag (gtag.js) - Google Analytics