2010-06-15 87 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();