详解window.open被浏览器拦截的解决方案

2020-04-21 07:02:15易采站长站整理

// 重定向到目标页面
newWin.location.href = 'target url';
});
});

以上方法其实是打开了两个地址,所以建议大家打开第一个地址的时候给出一个类似‘当前页面正在加载中,请稍后。。’的简单提示页,这样可以避免打开两次真正的目标页面,让用户察觉到页面的重定向。
解决方法二:


<a href="javascript:;" onclick="dialog();">点击弹窗</a>

<script>
function dialog(){
$.ajax({
url: 'url',
type: 'POST',
dataType: 'json',
async: false, // 此处必须定义为同步
data: {param1: 'value1'},
success: function(data){
window.open(data.url, '_blank'); //发起弹窗
}
})
}
</script>

该方法弊端:

实测能解决大部分浏览器的拦截问题,但是解决不了安全软件的拦截(360不会拦截,但是QQ管家会拦截)