我有一个ajax命令,在返回时我需要调用window.open(url, '_blank')
,并且遇到了浏览器阻止此调用的情况(返回null)。
我知道我需要为此进行用户操作,并且可以显示模式“在新标签中打开”等带有“确定”按钮的功能,然后可以执行window.open
,但是{{1 }}没有alert()
处理程序,因此,如果我理解正确,将无法在这里工作。
我有什么选择?我是否必须编写代码或使用onclick
带第三方弹出窗口来执行此操作? (有什么建议吗?)
答案 0 :(得分:0)
这对我有用:
let openNewTab = function(){
if(confirm("Open new tab?"))
{
window.open('https://www.google.com/', '_blank');
}
}
Codepen链接:https://codepen.io/jeff-tian/pen/bGGPzrX
答案 1 :(得分:0)
似乎是真的。如果您不想编写弹出式代码,则可以使用ant-design
或Taro
。
此处的Taro
示例:https://pa-ca.me/pages/cards/cards
基本上首先尝试window.open
,然后检查错误,如果出现错误,然后弹出:
const url = ajax('url')
try {
window.open(url)
}catch(ex){
showPopup({onConfirm: ()=>window.open(url)})
}