我正在纯粹用JavaScript开发OAuth身份验证流程,我想在弹出窗口中向用户显示“授予访问权限”窗口,但是该窗口被阻止了。
如何防止由window.open或创建的弹出窗口window.showModalDialog被不同浏览器的弹出窗口阻止程序阻止?
window.open
window.showModalDialog
一般规则是,如果window.open从 直接用户操作 未调用的javascript中调用了javascript或类似方法,则会阻止弹出窗口阻止 程序 。也就是说,您可以window.open响应单击按钮而调用,而不会被弹出窗口阻止程序击中,但是如果将相同的代码放在计时器事件中,它将被阻止。呼叫链深度也是一个因素- 一些较旧的浏览器仅查看直接呼叫者,较新的浏览器可以稍微回溯以查看呼叫者的呼叫者是否是鼠标单击等。请使其尽可能浅,以避免弹出窗口阻止程序。