gpt4 book ai didi

javascript - 使用 javascript 弹出窗口,访问次数和采样率不起作用

转载 作者:行者123 更新时间:2023-11-28 04:22:59 25 4
gpt4 key购买 nike

我正在尝试制作一个仅显示的弹出窗口:第三次访问后,只有 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)
}
}
}

在页面的头部我设置了cookie:

    expDate = new Date;
// in the following line, 180 means 180 days.
expDate.setTime(expDate.getTime() + 180 * 24 * 60 * 60 * 1000); expDate.toGMTString();

function setCookie(name, value, expires, path, domain, secure){

document.cookie= name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}

function getCookie(name){

var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1){
begin = dc.indexOf(prefix);
if (begin != 0) return null;}
else{begin += 2;}
var end = document.cookie.indexOf(";", begin);
if (end == -1){end = dc.length;}
return unescape(dc.substring(begin + prefix.length, end));
}


function deleteCookie(name, path, domain){

if (getCookie(name)){
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";}
}

----更新---
我最初有这个 - 它正在工作 - 它只是让随机的 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>

最佳答案

因为我找不到你的函数的定义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);

说明

我在这里使用的随机逻辑非常简单。首先,我将随机 float 乘以 5,返回 0~4.99 之间的 float 。之后我们需要它的下限值。所以它在 04 之间。因为0 == false这只成功了所有尝试的 20%。

您的片段中的另一个问题位于第 10 行 ( if (visits < 3) { )。这永远不会是真的,因为在上面的语句中您检查是否 if (visits == 3) { (第 5 行)并且因为您没有更改 visits 的值它不能是其他任何东西,只能是 3

关于javascript - 使用 javascript 弹出窗口,访问次数和采样率不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45301401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com