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

2022-08-30 03:08:51

偶尔,我会遇到一个网页,试图弹出一个新窗口(用于用户输入或重要的事情),但弹出窗口阻止程序阻止了这种情况的发生。

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


答案 1

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

var newWin = window.open(url);             

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

答案 2

我尝试了上面的一些例子,但我无法让它们与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.");
    }
}