PopUp Blocker代码检测不起作用

时间:2010-06-15 12:27:33

标签: javascript popup

我在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>

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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();