【问题标题】:How can I open a pop-up window without it being blocked?如何在不被阻止的情况下打开弹出窗口?
【发布时间】:2014-01-23 12:41:50
【问题描述】:

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

时代变了,弹出窗口大多被类似花式框的框所取代。但是,仍然有需要弹出窗口的时候。

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

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

【问题讨论】:

标签: javascript dom popup


【解决方案1】:

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

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

你不能做什么:

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

你可以做什么:

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

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

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

【讨论】:

    【解决方案2】:

    试试这个,它对我有用

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

    Js fiddle 在这里 https://jsfiddle.net/safeeronline/70kdacL4/2/

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      相关资源
      最近更新 更多