使用javascript弹出的访问和采样率不起作用

使用javascript弹出的访问和采样率不起作用,javascript,cookies,Javascript,Cookies,我正在尝试创建一个只显示以下内容的弹出窗口: 在第三次访问之后,只有20%的时间 我现在就有这个,我并不擅长Javascript,需要一些帮助来找出我到底做错了什么。任何帮助都将不胜感激 visits = getCookie('nVisits'); if (!visits) { visits = 1 } if (visits == 3) { deleteCookie('nVisits') if (rand(0, 100) <= 20) { window.open("ht

我正在尝试创建一个只显示以下内容的弹出窗口: 在第三次访问之后,只有20%的时间

我现在就有这个,我并不擅长Javascript,需要一些帮助来找出我到底做错了什么。任何帮助都将不胜感激

visits = getCookie('nVisits');
if (!visits) {
  visits = 1
}
if (visits == 3) {
  deleteCookie('nVisits')
  if (rand(0, 100) <= 20) {
    window.open("http://mypopup.html", "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");
  } else {
    if (visits < 3) {
      ++visits;
      cookieData = visits;
      setCookie('nVisits', cookieData, expDate)
    }
  }
}
----更新---
我本来有这个-这是工作-它只是得到随机20%的工作

<Script>
visits = getCookie('nVisits');
if (!visits){visits = 1};
if (visits == 3 ){deleteCookie('nVisits')
window.open("https://popup.html", "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");  
}
if (visits < 3){++visits;
cookieData = visits;
setCookie('nVisits',cookieData,expDate)
}
</Script>

访问量=获取cookie(“nVisits”);
如果(!visions){visions=1};
if(visions==3){deleteCookie('nVisits'))
窗口打开(“https://popup.html“工具栏=是,滚动条=是,可调整大小=是,顶部=500,左侧=500,宽度=400,高度=400”);
}
如果(就诊次数<3次){++就诊次数;
cookieData=访问;
setCookie('nVisits',cookieData,expDate)
}

因为我找不到你函数的定义
rand
,所以我完全重写了被剪断的部分

const visitsCookieName = 'nVisits';
let visits = getCookie(visitsCookieName) || 0;
if (visits === 3) {
    deleteCookie(visitsCookieName)
    if (Math.floor(Math.random() * 5)) return;

    window.open("http://mypopup.html", "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");
    return;
}

setCookie(visitsCookieName, ++visits, expDate);
解释 我在这里使用的随机逻辑非常简单。首先,我将随机浮点数乘以5,它返回一个介于0~4.99之间的浮点数。在那之后,我们需要它的最低价值。所以它介于04之间。因为
0==false
这只命中了所有尝试的20%


第10行(
if(visions<3){
)是被剪掉的另一个问题。这永远不会是真的,因为在上面的语句中,您检查if
if(visions==3){
(第5行)由于您没有更改
访问量
的值,它只能是3

,因为我找不到您函数的定义
rand
,所以我完全重写了截断的部分

const visitsCookieName = 'nVisits';
let visits = getCookie(visitsCookieName) || 0;
if (visits === 3) {
    deleteCookie(visitsCookieName)
    if (Math.floor(Math.random() * 5)) return;

    window.open("http://mypopup.html", "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");
    return;
}

setCookie(visitsCookieName, ++visits, expDate);
解释 我在这里使用的随机逻辑非常简单。首先,我将随机浮点数乘以5,它返回一个介于0~4.99之间的浮点数。然后我们需要它的下限值。因此它介于04之间。因为
0==false
这只命中所有尝试的20%


第10行(
if(visions<3){
)是被剪掉的另一个问题。这永远不会是真的,因为在上面的语句中,您检查if
if(visions==3){
(第5行)因为你没有更改
访问次数的值
它只能是3

如果有错误,它会产生什么错误?没有错误,只是不起作用。在我放置if(rand(0,100)之前,我让它起作用。random()而不是rand()尝试Math.random,现在它每三次访问就弹出一次(忽略math.random)好的,试试这个:return math.random()*(max-min)+min,显然是用你的值交换max/min。如果有错误,它会产生什么错误?没有错误,只是不起作用。在我把if(rand(0,100)改为rand()之前,我已经让它起作用了做了Math.random,现在它只是每隔三次访问就出现一次(忽略Math.random)好吧,试试这个:return Math.random()*(max-min)+min,显然是用你的值来交换max/min。问题是-最初我有这个,它在三次访问后工作,所以这不是问题(我不认为)它试图在那里得到20%的访问量:visions=getCookie('nVisits');if(!visions){vists=1};if(visions==3){deleteCookie('nVisits')窗口。打开(“,”u blank“,”工具栏=yes,滚动条=yes,可调整大小=yes,顶部=500,左侧=500,宽度=400,高度=400”);}if(visions<3){++visions;cookieData=vists;setCookie('nVisits',cookieData,cookieData,expDate)})问题是-最初我有这个,它在3次访问后工作,所以这不是问题(我不认为)。它试图在那里得到20%:访问=getCookie('nVisits');如果(!访问){visits=1};如果(访问==3){deleteCookie('nVisits')窗口。打开(“,”空白“,“toolbar=yes,scrollbars=yes,resizeable=yes,top=500,left=500,width=400,height=400”);}if(访问次数<3次){++vists;cookieData=vists;setCookie('nVisits',cookieData,expDate)}