這個太簡單了,window.close()就可以了;
不過它會出個提示“您查看的網(wǎng)頁正在試圖關(guān)閉窗口。是否關(guān)閉窗口?”,能不能不出這個提示?N年前就有人問過我,那時候我還是菜鳥,不過我的回答還算“專業(yè)”。呵呵;
“如果你第一次打開這個網(wǎng)頁,window.close()就會彈出提示,如果這個網(wǎng)頁是由其它的網(wǎng)頁window.open()出來的頁
面,window.close()時,就不會出現(xiàn)提示;還有,當(dāng)chm幫助文檔中的頁面,在點擊關(guān)才,激活window.close()時,也會不出提
示。”
上面的回答,是我當(dāng)時通過測試得出的結(jié)果。沒有進行過“理論”分析,那個時候,對javascript還僅僅是會用一些簡單方法而已。
這個小問題,我也沒有當(dāng)回過事兒,前兩天,有朋友問到,我也是這樣回答,不過他說,見別人可以的,希望我能幫幫忙,我說,不太可能吧,不過忽然想起,opener語句;
window.opener語句,可以返回打開當(dāng)前頁面的那個網(wǎng)頁,就是在a.htm中,open()了b.htm頁面,那么,在b.htm頁面中,window.opener,就會返回a.htm。
如,我在b.html寫入
alert(window.opener.location.href);
就會彈出a.htm的完整路徑;
那么,當(dāng)我window.close()時,它是不是能過opener來判斷當(dāng)前頁是不是被open的呢?試一下就知道嘍;
<script language="JavaScript" type="text/javascript">
function cl()
{
window.opener='';
window.close();
}
</script>
上面的方法就是當(dāng)前頁面的opener賦為空字符串(空字串可不是null,并不是為空),然后關(guān)閉當(dāng)前頁,隨便做個按鈕,來觸發(fā)這個方法;
<input type="submit" onclick="cl()" name="Submit" value="提交" />
果然,點擊即關(guān)閉了當(dāng)前窗口,且沒有提示;呵呵;
想到,可能會用在框架頁面,就是frame的子頁中,那么上面的代碼是不是應(yīng)該寫成
<script language="JavaScript" type="text/javascript">
function cl()
{
window.top.opener='';
window.top.close();
}
</script>
我沒有做測試,應(yīng)該可以的吧。