javascript - 避免浏览器弹出窗口拦截器

标签 javascript popup modal-dialog popup-blocker

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

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

最佳答案

一般规则是,如果 window.open 或类似内容是从 直接用户操作 未调用的 javascript 调用的,则会使用弹出窗口阻止程序。也就是说,您可以调用 window.open 来响应按钮单击而不会被弹出窗口阻止程序击中,但是如果您将相同的代码放入计时器事件中,它将被阻止。调用链的深度也是一个因素 - 一些较旧的浏览器只查看直接调用者,较新的浏览器可以回溯一点以查看调用者的调用者是否是鼠标点击等。保持尽可能浅以避免弹出窗口阻止程序。

关于javascript - 避免浏览器弹出窗口拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587677/

相关文章:

xcode - 如何禁用每次打开 RStudio 时出现的 "git requirement" pop 窗口?

jquery - 无法提交在 Jquery 模型中加载的页面

javascript - 如何让一些 Javascript 代码在加载任何 NyroModal 对话框时执行

javascript - 带有包含表单的 Bootstrap 模态视图的 Rails 应用程序,提交和消失模态视图而无需重新加载页面

javascript - javaScript 中的警报函数

javascript - 搜索功能不会过滤所有值

javascript - iText 样式数组上的 FabricJS lineHeight

javascript - 如何检查嵌套 javascript 对象中的某个键是否存在?

javascript - 延迟一段时间后显示 overflow-x 滚动条

javascript - 演示 : how to import this micromodal library