如何在没有被阻止的情况下打开弹出窗口?

时间:2014-01-23 12:41:50

标签: javascript dom popup

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

时代已经发生变化,弹出窗口大多被替换为类似fancybox的盒子。但是,仍然需要弹出窗口。

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

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

2 个答案:

答案 0 :(得分:4)

弹出窗口拦截器会阻止任何弹出窗口,除非因为用户操作而打开它。

如果用户点击某个链接,并在该链接的点击监听器中打开一个弹出窗口,则弹出窗口阻止程序会知道用户想要打开某个内容而不会(或不应该)阻止弹出窗口。

你不能做什么:

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

你能做什么:

  • 在点击侦听器中打开一个弹出窗口
  • 在锚标记中使用target =“_ blank”

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

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

答案 1 :(得分:1)

试试这个,它对我有用

$('#myButton').click(function () {
    var redirectWindow = window.open('http://google.com', '_blank');
    redirectWindow.location;
});

Js fiddle for this is https://jsfiddle.net/safeeronline/70kdacL4/2/

如果您想在ajax调用后打开新标签,请参阅此小提琴http://jsfiddle.net/safeeronline/70kdacL4/1/

相关问题