菜鸟教程: 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 版权声明:本文为博主原创文章,转载请附上博文连接!