今天碰到一個客戶要求點擊按鈕能夠關閉窗口,最簡單的當然是
<script type="text/javascript"> window.close(); </script>
但是這句代碼有兩個問題,第一是有提示窗口,需要你確認才能關閉;第二是這句代碼不能在FF和Chrome下生效。一個一個來,顯示提示問題
<script type="text/javascript"> function iClose(){ window.open('','_self'); window.opener=null; window.close(); } </script>
最后是第二個問題,FF和Chrome,在Google下查了一圈,看了差不多10頁的內容,最終得出一個悲傷的結論,FF只支持關閉javascript腳本打開的頁面,不允許關閉非腳本打開的窗口。當然,可以用about:config,打開配置文件,找到dom.allow_scripts_to_close_windows,把這個設置成true的時候,FF就支持window.close()了,但是我們不是黑客,怎么可能去強迫用戶去改變這個設置,更何況這個設置是出於安全的考慮,防止惡意腳本關閉window。呼呼,這個問題留待大神解決。至於Chrome的話,代碼如下
<script type="text/javascript"> function iClose(){ var browserName=navigator.appName; if (browserName=="Netscape"){ window.opener = window; var win = window.open("","_self"); win.close(); //frame的時候 top.close(); } if (browserName=="Microsoft Internet Explorer") { window.parent.open('','_self'); window.parent.opener=null; window.parent.close(); } } </script>
