今天在項目上有一個頁面要求在幾秒后自動關閉,想着還比較簡單,用window.close()就可以了,但是用IE/谷歌/火狐瀏覽器試了一下,發現IE可以,谷歌用網上的兼容方法也可以實現,但是火狐這里卡住了,不能關閉,網上看到的一種兼容代碼:
function windowclose() { var browserName = navigator.appName; if (browserName=="Netscape") { window.open('', '_self', ''); window.close(); } else { if (browserName == "Microsoft Internet Explorer"){ window.opener = "whocares"; window.opener = null; window.open('', '_top'); window.close(); } } }
試了一下,發現火狐還是不行,又百度了幾篇帖子,下面是我的總結:
一、這種方法簡單粗暴:改firefox的配置文件
步驟:
1、在地址欄輸入about:config然后回車,警告確認
2、在過濾器中輸入”dom.allow_scripts_to_close_windows“,雙擊即可將此值設為true
即可完成了。
注:這種方法雖然可以很快解決問題,但是實際項目中,我們不可能去要求每個客戶去更改自己瀏覽器的配置文件
二、利用js中的window.open()
因為發現火狐瀏覽器必須是js打開的頁面,才能用window.close()關閉,這樣的話,就用window.open("這個頁面地址")跳轉到這個頁面,試驗可行
三、利用a標簽
利用a標簽鏈接跳轉到這個頁面,不過需要用target="_blank"屬性重新打開頁面才可以,試驗可行
這是三種解決方法,不過還沒有找到火狐瀏覽器在本頁面試驗關閉頁面的方法,還有待研究,希望有大神知道的可以告知
