一,研究的起因
?
今天中午左右,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"> </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"> </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
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
本文【二】中已标注了测试的浏览器,笔者未在其他版本测试
你在那个浏览器什么版本下测试的??谢谢
window.close();
你看这个网站最下面的那个关闭窗口按钮。
你看这个网站最下面的那个关闭窗口按钮。
那个按钮后台代码
<input type="button" class="closebtn" value="关闭窗口" onclick="window.opener=null;window.close();">
在测试(三)2中已讨论过了,兼容性不太好
请问错误在哪里?以方便我和他人改正,非常感谢!!
请问错误在哪里?以方便我和他人改正,非常感谢!!
最烦这种卖关子的S B 。 你说人家有错就指出来。中国做技术的就J8这德性