ブラウザウィンドウを閉じて深く検討する


一、研究の起因
 
今日のお昼ごろ、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,(3)の結論から,(3)2,(3)3,(3)5コードの互換性がより良く,firefox以外はプロンプトなしで閉じることができることが分かった
 
3,(3)2,(3)3,(3)5を比較すると,(3)2,(3)3はfrefoxに対して何の反応もなく,(3)5はabout:blankの空白ページを開き,ユーザの操作に応答し,完璧ではないが元のウィンドウがなくなったと感じられる.
 
 
4,operaはjavascriptに対してウィンドウを閉じて、基本的に安全な制限がなくて、chrome、IE、firefoxで危険な操作だと思って、operaはいかなるヒントをしません!
 
 
 
-----------------------------------------------------------------------------------------
 
 
 
 
 
もっと良い方法を見つけたら、伝言を残したり、私に連絡したりします:QQ 527067272、あるいはemail:zhangxuehuaemail#gmail dot com