window.open()浏览器拦截问题

2018-06-26  本文已影响0人  shougg22

一、发生拦截情景

当window.open()发生在事件内部或者加载的时候,不会发生拦截,但是放在异步ajax里或者异步代码里,就会发生拦截

二、解决办法

1.var tempWindow = window.open();
tempWindow.location.href = "url地址"

2.利用表单提交的方式
var form = document.createElement('form');
form.action = 'www.baidu.com?id=1';
form.target = '_blank';
form.method = 'POST';
document.body.appendChild(form);
form.submit();
这种方式,如果需要传递参数时,需要使用 POST 方法, 默认的get方法, 无法传递参数。也就是新页面的url中没有参数部分。
另外,Ajax下载文件时也是用form 表单来模拟下载

3.直接写在a标签链接的onclick事件中
<a href="javascript:void(0)" onclick="window.open(url)"></a>

4.将window.open()延迟处理
setTimeout('window.open("url地址");', 1000);

参考:https://blog.csdn.net/yypsober/article/details/79487217

上一篇下一篇

猜你喜欢

热点阅读