javascript - 如何打开弹窗而不被拦截?

标签 javascript dom popup

我还没有找到能够告诉我打开弹出窗口的正确方法的单一答案。

时代变了,弹出窗口大多被类似 fancybox 的盒子所取代。但是,有时仍然需要弹出窗口。

对于那些情况,我不希望我的弹出窗口被浏览器阻止。

在不被阻止的情况下打开弹出窗口的正确方法是什么?即使它在浏览器中打开一个新选项卡。我只想打开我的弹出窗口,并从父级控制它,反之亦然。

最佳答案

弹出窗口阻止程序将阻止任何弹出窗口,除非它是由于用户操作而打开的。

如果用户点击一个链接,并且在该链接的点击监听器中打开一个弹出窗口,弹出窗口拦截器知道用户想要打开某些东西并且不会(或不应该)阻止该弹出窗口。

你不能做什么:

  • 打开或关闭页面时打开一个弹出窗口
  • 在一定时间间隔后打开一个弹出窗口
  • 在异步发生后打开一个弹出窗口

你可以做什么:

  • 在点击监听器中打开一个弹出窗口
  • 在 anchor 标记中使用 target="_blank"

您可以使用 JavaScript 变量访问两个窗口:

  • 如果您使用 window.open,父级可以通过将 window.open 的结果分配给变量来引用弹出窗口。查看this article at W3Schools .
  • 如果弹出窗口需要访问打开它的窗口,您可以使用window.opener。查看this question .

关于javascript - 如何打开弹窗而不被拦截?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21308472/

相关文章:

javascript - 上传文件时,AJAX请求的大小远大于原始大小

javascript - notifier.performChange 实际上做了什么?

javascript - 使用 popover 指令时 Angular 绑定(bind)不起作用

javascript - 在 webflow 中为悬停时添加小部件的边框实现

javascript - MomentJS 返回每月 1 号的模糊日期

jquery - 在 DOM 元素上应用 jQuery 方法

javascript - 操作因 DOM 复杂性而降低?

css - 设置 Mapbox 弹出窗口的指针/指示器的样式

php - 将值从 mysql db 传递到 bootstrap modal

java - 执行逻辑时 Wicket 口加载图标/弹出窗口