菜鳥教程: http://www.runoob.com/jsref/met-win-open.htmlhtml
1、基本語法:
window.open(URL,name,specs,replace)
其中:
URL 爲子窗口路徑
name 爲子窗口名字
specs 爲窗口參數(各參數用逗號分隔)ajax
2、返回值:json
返回新建立的window對象。因此能夠用返回的window調用方法。segmentfault
第二個對象參數支持不一樣瀏覽器支持程度:瀏覽器
http://www.javashuo.com/article/p-hoehmmry-dn.html異步
window.open()
a.click()
form.submit()
(創造 form 表單,添加 button 子元素,手動觸發 button.click()
狀況相同,不作區分)使用 Chrome(70)、Firefox(63)、Edge、IE(9-11) 做爲測試瀏覽器,對如下列舉的打開新窗口的情形作測試。post
x 表示被攔截,√ 表示新窗口正確打開測試
即頁面加載後直接調用打開新窗口代碼url
方式 | Chrome | Firefox | Edge | IE |
---|---|---|---|---|
window.open() | x | x | x | x |
a.click() | x | x | x | x |
form.submit() | x | x | x | x |
按鈕點擊後直接打開spa
即在按鈕被點擊的回調中,直接調用打開新窗口的代碼
方式 | Chrome | Firefox | Edge | IE |
---|---|---|---|---|
window.open() | √ | √ | √ | √ |
a.click() | √ | √ | √ | √ |
form.submit() | √ | √ | √ | √ |
按鈕點擊後延時打開
即在按鈕被點擊的回調中,經過 setTimeout 執行打開新窗口代碼
方式 | Chrome | Firefox | Edge | IE |
---|---|---|---|---|
window.open() | √ | √ | × | × |
a.click() | √ | √ | × | × |
form.submit() | √ | √ | × | × |
按鈕點擊後在異步請求回調中打開
即在按鈕被點擊的回調中,發送請求,並在請求的回調中執行打開新窗口代碼
方式 | Chrome | Firefox | Edge | IE |
---|---|---|---|---|
window.open() | x | x | x | x |
a.click() | x | x | x | x |
form.submit() | x | x | x | x |
咱們以 input 元素進行測試(其餘元素其餘鍵盤事件也有相同效果),由於最可能使用的狀況爲 input 中使用回車打開新窗口。
input keydown後直接打開
方式 | Chrome | Firefox | Edge | IE |
---|---|---|---|---|
window.open() | √ | x | √ | x |
a.click() | √ | x | √ | x |
form.submit() | √ | x | √ | x |
其中 ie九、ie10雖然會彈出攔截彈窗提示,可是能打開新窗口
按鈕點擊後延時打開
方式 | Chrome | Firefox | Edge | IE |
---|---|---|---|---|
window.open() | √ | x | x | x |
a.click() | √ | x | x | x |
form.submit() | √ | x | x | x |
按鈕點擊後在異步請求回調中打開
方式 | Chrome | Firefox | Edge | IE |
---|---|---|---|---|
window.open() | x | x | x | x |
a.click() | x | x | x | x |
form.submit() | x | x | x | x |
function click_fun_new(){ var tempwindow=window.open();//先打開臨時窗體,因爲是點擊事件內觸發,不會被攔截 $.ajax({ 'url': '${pageContext.request.contextPath}/activity/savePrizes.htm', 'type': 'post', 'dataType': 'json', 'data': data, success: function (data) { tempwindow.location = "www.baidu.com";//當回調的時候更改臨時窗體的路徑 }, error:function(){ tempwindow.close();//回調發現無需打開窗體時能夠關閉以前的臨時窗體 } }); --------------------- 做者:Elong_Deo 來源:CSDN 原文:https://blog.csdn.net/qq525099302/article/details/51338879 版權聲明:本文爲博主原創文章,轉載請附上博文連接!