当前位置: 首页 > 面试题库 >

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

费凯康
2023-03-14
问题内容

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

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


问题答案:

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




 类似资料:
  • 我在我的网站上有一个按钮,允许用户通过Yodlee/Plaid使用弹出的登录屏幕登录到他们的银行。问题是弹出窗口被safari和chrome手机屏蔽了。弹出窗口在桌面上工作。我读到过safari和chrome会阻止所有弹出窗口,如果用户没有点击按钮启动弹出窗口,或者弹出窗口从点击事件开始超过一秒。 我的问题是,在启动弹出窗口之前,我的前端必须调用我的后端来检索令牌。所有这些都需要超过一秒钟的时间,

  • 问题内容: 我们正在针对现有代码库运行Selenium回归测试,并且Web应用程序中的某些屏幕使用弹出窗口作为中间步骤。 当前,我们在测试中使用以下命令: … 大多数情况下都可以使用 。偶尔测试将失败在与线 谁能建议一种更好,更 可靠的 方法? 另外,我们主要在IE6和7上运行这些测试。 问题答案: 有用!!只是为了让那些喜欢硒的人们更容易。 这对我使用IE7(正常模式)有效。 真是个令人毛骨悚然

  • 我正在为Facebook编写一个代码,它从属性文件中获取URL、ID、密码,但在登录时,我会被提示“Facebook想要显示通知-允许-阻止”,在登录后我该如何使其如此(a)按ESP或Alt+F4并关闭弹出窗口或(B)查找通知并自行关闭通知。这是我使用的,但它不起作用。感谢任何帮助。

  • 问题内容: 我正在使用selenium webDriver为一个Web应用程序编写测试,并且遇到一种情况,当我尝试关闭浏览器时,我会弹出一个对话框:“确定吗?”页面要求您确认要离开- 输入的数据将迷路了。” 有2个按钮:“离开页面”和“停留在页面上” 如何单击这些按钮? 问题答案: 为我解决了这个问题

  • 问题内容: 我必须隐藏浏览器的地址栏。我正在使用此代码: 在许多解决方案中,仅location=no属性可以隐藏地址栏(在IE和Chrome中)。但是,这对我不起作用(即使在IE和Chrome中也是如此)。 最后,我找到了一条MSDN文章,其中描述了如何location=no简单地隐藏后退/前进/停止导航按钮,并使地址栏为只读。 有什么解决方案可以通过忽略上面的MSDN文章来隐藏整个地址栏吗? 我

  • 我有一个下载操作在我的javascript代码与提供商。 这将触发我的浏览器弹出窗口。我不想这样。 但是我想直接下载。不要显示弹出窗口。