首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >避免浏览器弹出窗口阻止程序

避免浏览器弹出窗口阻止程序
EN

Stack Overflow用户
提问于 2010-04-07 03:29:26
回答 4查看 249.9K关注 0票数 193

我正在纯粹用JavaScript开发一个OAuth身份验证流,我想在弹出窗口中向用户显示“授权访问”窗口,但它被阻止了。

如何防止由window.openwindow.showModalDialog创建的弹出窗口被不同浏览器的弹出窗口阻止程序阻止?

EN

回答 4

Stack Overflow用户

发布于 2018-06-03 06:02:55

我尝试了多种解决方案,但他的解决方案在所有浏览器中都是唯一有效的

let newTab = window.open(); newTab.location.href = url;

票数 5
EN

Stack Overflow用户

发布于 2020-10-06 11:52:02

我的用例:在我的react应用程序中,当用户点击时,有一个API调用被执行到后端。根据响应,打开新选项卡,并将api响应作为参数添加到新选项卡URL (在同一域中)。

在我的用例中,唯一需要注意的是,接收API响应需要1秒以上的时间。因此,当在新选项卡中打开URL时,弹出窗口阻止程序会显示出来(如果它是活动的)。

为了规避上述问题,下面是示例代码。

代码语言:javascript
复制
var new_tab=window.open()
axios.get('http://backend-api').then(response=>{
    const url="http://someurl"+"?response"
    new_tab.location.href=url;
}).catch(error=>{
    //catch error
})

摘要:创建一个空的选项卡(如第1行),当API调用完成后,您可以用url填充选项卡并跳过弹出窗口阻止程序。

票数 5
EN

Stack Overflow用户

发布于 2021-11-22 15:22:07

@在这里我发现它在所有浏览器中都工作得很好

代码语言:javascript
复制
window.open(URL) || window.location.assign(URL)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2587677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档