2010-06-15 86 views
0

我已经在FF和Chrome中打开了PopUp拦截器。 我有一段代码来检查弹出的工作为:页面的PopUp拦截器代码检测不起作用

function checkPopUp() 
{ 
    var myTest = window.open("about:blank","","directories=no,height=1,width=1,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,top=0,location=no"); 
    var popUpsBlocked = ''; 
    if (!myTest) { 
    popUpsBlocked = true;  
    } else { 
    popUpsBlocked = false; 
    } 
    return popUpsBlocked; 
} 

其工作的罚款“的onload”。 但是,当我使用超链接onclick它,它不工作弹出窗口被打开。

<a onclick="checkPopUp()" href="#">Test</a> 
+0

脱离主题评论:您可以通过选择它并使用面板上的'代码'按钮(使用零和一个)将代码格式化为代码。 – bezmax 2010-06-15 12:30:43

+0

Thx我会在将来使用它 – user367134 2010-06-23 12:46:21

回答

0

浏览器在“点击”事件循环期间允许弹出窗口。不同的浏览器在用户控制下具有不同的配置选项,但通常默认行为是将“点击”视为愿意从页面请求功能的用户。

+0

Thx for your comment。 但是,当我点击按钮,弹出式窗口功能的作品,但在同一功能有一个AJAX请求,并在回应我打电话相同的弹出功能,其不开放........ 为什么这样? – user367134 2010-06-15 13:22:50

0

下面的代码已经在FF29.0,IE9,Chrome35.0,Safari和最好的部分工作了!

var popupBlocker = { 

    isPopupBlocked: function (width, height) { 
       setTimeout(function() { 
        var popup = window.open(""); 
        if (!popup) { 
         return false; 
        } 
        else { 
         popup.document.open(); 
         popup.document.write("<html><body onload='window.close();'></body></html>") 
         popup.document.close(); 
         return true; 
        } 
       }, 100); 
      } 

     }; 

    popupBlocker.isPopupBlocked();