浏览器异步打开新窗口被拦截问题
问题:需要请求后拉开新窗口的需求时,如果请求超过一定时间后,弹窗窗口可能会被浏览器拦截
解决方案:
- 将window.open赋值给一个变量,如果被浏览器拦截了该变量为空,被拦截时可以弹出弹窗让用户手动点击跳转
const newWin = window.open('www.baidu.com');
if (!newWin) {
setShowShareModal(true); //打开弹窗让用户手动跳转
}
- 在请求前打开一个loading窗口,请求成功后将该窗口地址赋值成想要跳转的地址
// 请求前
const newWin = window.open('/loading');
// 请求后
newWin.location = 'www.baidu.com'