Javascript 如何强制用户在新的弹出窗口中停留一段时间?

Javascript 如何强制用户在新的弹出窗口中停留一段时间?,javascript,Javascript,我想强制用户在允许关闭新标签之前,在新标签上停留一段时间 这里有一个例子:当用户快速关闭弹出窗口时,它会阻止整个网站,并通知用户禁用adblock 函数xxx(){ var popUp=window.open('https://www.google.com/'); var timer=setInterval(函数(){ 如果(弹出。关闭){ 清除间隔(计时器); 警报(“关闭”); } }, 2000); if(popUp==null | | typeof(popUp)=='undefine

我想强制用户在允许关闭新标签之前,在新标签上停留一段时间

这里有一个例子:当用户快速关闭弹出窗口时,它会阻止整个网站,并通知用户禁用adblock


函数xxx(){
var popUp=window.open('https://www.google.com/');
var timer=setInterval(函数(){
如果(弹出。关闭){
清除间隔(计时器);
警报(“关闭”);
}
}, 2000);
if(popUp==null | | typeof(popUp)=='undefined'){
警报(“AdBlock detect”);
} 
否则{
popUp.focus();
}
}

如果您可以访问所有有问题的链接,您可以添加到

否则,必须将持续时间逻辑与检查逻辑分开。一种版本是将间隔设置为较低,以便经常检查,并将开始时间传递给回调函数,在回调函数中可以计算经过的时间

下面是一个简短的例子:

功能xxx(链接){
var tObject={
弹出:窗口。打开(链接),
开始时间:Date.now(),
所需等待时间:2000,
计时器:空
};
//REM:没有找到弹出窗口
如果(!tObject.popUp){
警报('无弹出检测')
} 
否则{
tObject.popUp.focus();
tObject.Timer=setInterval(函数(对象){
如果(对象){
//REM:如果没有弹出窗口或弹出窗口关闭,我们就完成了
如果(!object.popUp | | object.popUp.closed){
//REM:停止计时器和清理
clearInterval(object.Timer);
object=null;
//REM:失败时输出
警报('时间不够')
}
//REM:否则,如果弹出窗口打开,等待时间超过2000毫秒,我们就完成了
否则如果(
Date.now()-object.startTime>object.requiredWaitingTimeInMS
){
//REM:停止计时器和清理
clearInterval(object.Timer);
object=null;
//REM:成功的输出
警报(“足够时间”)
}
}
}.bind(这个,tObject),50)
}
}

通常是我永久屏蔽网站的时候。Popupblocker和Addblocker是不同的东西。现在很多设备上的弹出窗口都被默认阻止。我尝试建立PTC网站,这样,如果用户在弹出窗口停留一段时间@javascript,该功能允许用户收集奖励。您提供的代码有什么问题?我的代码不起作用,我想在2sec显示警报之前使用if(popup.closed)