窗口弹出窗口阻止程序问题

时间:2013-06-07 21:45:04

标签: javascript popup popup-blocker window-position

我使用以下脚本自动弹出优惠券窗口。但是,Chrome和其他浏览器会阻止弹出窗口,因为它已被删除。有没有办法避免被弹出窗口阻止程序阻止?另外,我该如何居中呢?

代码:

<SCRIPT LANGUAGE="JavaScript">
<!--
function GetCookie(name) {
  var arg=name+"=";
  var alen=arg.length;
  var clen=document.cookie.length;
  var i=0;
  while (i<clen) {
    var j=i+alen;
    if (document.cookie.substring(i,j)==arg)
      return "here";
    i=document.cookie.indexOf(" ",i)+1;
    if (i==0) break;
  }
  return null;
}
var visit=GetCookie("COOKIE1");
if (visit==null){
   var expire=new Date();
    window.name = "thiswin";
    newwin=open("popup.html", "dispwin",  
    "width=730,height=424,scrollbars=no,menubar=no");
   document.cookie="COOKIE1=here; expires=Thu 01-01-2004 00:00:00 GMT;";
}
// -->
</SCRIPT>

2 个答案:

答案 0 :(得分:2)

  

有没有办法避免被弹出窗口阻止程序阻止?

是:从用户生成的事件(例如window.open)的事件处理程序中调用click。这是浏览器在决定是否阻止弹出窗口时使用的主要标准,因为它至少给出了用户要求的一些指示。


对于像这样的东西,我强烈建议使用横幅栏或类似的东西,而不是弹出窗口。您可以在HTML顶部的标记中找到类似的内容:

<div id="first-time-banner" style="display: none">text here</div>

然后将该代码的最后一位更改为:

if (visit==null){
   var expire=new Date();
   document.getElementById("first-time-banner").style.display = "block";
   document.cookie="COOKIE1=here; expires=Thu 01-01-2004 00:00:00 GMT;";
}

这将向没有设置cookie的用户显示横幅。您可能希望在横幅中包含允许用户关闭它的内容,这涉及在元素上挂钩用户事件(关闭按钮或类似按钮)。例如:

<div id="first-time-banner" style="display: none">
    text here
    <span id="first-time-banner-close">X</span>
</div>

...在span上使用样式使其看起来很漂亮。然后:

document.getElementById("first-time-banner-close").onclick = function() {
    document.getElementById("first-time-banner").style.display = "none";
};

(还有其他方法可以解决问题,但它们稍微复杂一些。)

答案 1 :(得分:1)

同样要集中精力,你可以这样做:

<div id="PopUpFad" style="left: 514.5px; opacity: 0.9999899999999999; position: absolute;
 top: 50%; 
 left: 50%; 
 margin-top: -195px; 
 margin-left: -314px;" class="show"><div class="PopUpFadClose"><a href="#" onclick="PopUpFadCloseX()"><img src="http://livefitrevolution.org/wp-content/plugins/cool-fade-popup/close.jpg"></a></div><div><img src="http://livefitrevolution.org/wp-content/uploads/motivation-difference.jpg"></div></div>

这是视觉辅助的小提琴:

http://jsfiddle.net/Maikel1234/C5rRm/1/