如何检测浏览器是否阻止弹出窗口?

新手上路,请多包涵

有时,我遇到一个网页试图弹出一个新窗口(用于用户输入或其他重要内容),但弹出窗口阻止程序阻止了这种情况的发生。

调用窗口可以使用哪些方法来确保新窗口正常启动?

原文由 Nathan Bedford 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 807
2 个回答

如果您使用 JavaScript 打开弹出窗口,您可以使用如下内容:

 var newWin = window.open(url);

if(!newWin || newWin.closed || typeof newWin.closed=='undefined')
{
    //POPUP BLOCKED
}

原文由 omar 发布,翻译遵循 CC BY-SA 3.0 许可协议

我尝试了上面的一些例子,但我无法让它们与 Chrome 一起工作。这种简单的方法似乎适用于 Chrome 39、Firefox 34、Safari 5.1.7 和 IE 11。这是我们 JS 库中的代码片段。

 openPopUp: function(urlToOpen) {
    var popup_window=window.open(urlToOpen,"myWindow","toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=yes, width=400, height=400");
    try {
        popup_window.focus();
    } catch (e) {
        alert("Pop-up Blocker is enabled! Please add this site to your exception list.");
    }
}

原文由 DanielB 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏