是否可以在没有用户操作的情况下打开弹出窗口,至少弹出一个空白弹出窗口而不被弹出窗口阻止程序阻止?
我的目标是打开一个弹出窗口,确认用户是否在一段时间后才在PC上。例如,用户访问了我的网站并将其保留在浏览器中。说1小时之后我想显示弹出窗口,它只会询问用户是否在那里,如果用户不在他们的电脑上,我想将用户重定向到我网站的不同页面。
关于我如何做到这一点的任何线索?
已经通过了this stackoverflow post但没有帮助
道歉错过了重要的问题部分,我很喜欢时间部分,但我需要绕过弹出窗口阻止程序
我们可以手动覆盖弹出窗口阻止程序吗?
答案 0 :(得分:0)
您可以使用javascript执行此操作,例如 bootstrap 框架。
// time argument shows after how much time we must show popup
var set = function(time){
setTimeout(function(){
// logic of open popup
});
}
set(10000); //10 seconds
要了解如何使用引导程序模式(弹出窗口),您必须阅读this
答案 1 :(得分:0)
尝试使用timer
setTimeout('window.open(url")', miliseconds);
答案 2 :(得分:0)
弹出窗口阻止程序将阻止在没有用户操作的情况下触发的弹出窗口。在你的情况下解决一些js模态弹出窗口的解决方案。
您可以使用https://jqueryui.com/dialog/
或者一个简单的确认框也可以满足您的目的:
var response = confirm("are you there")?
但您无法根据网站主题自定义确认框。
答案 3 :(得分:0)
使用setTimeout函数read
setTimeout(函数名称,延迟时间) - 函数将在指定的延迟后执行
答案 4 :(得分:0)
你可以使用它,但它不是正确的解决方案,但它正在工作
var timeoutTime = 1800000;
var timeoutTimer = setTimeout(function(){
alert("TimeOut");
}, timeoutTime);
$(document).ready(function() {
$('body').bind('mousedown keydown', function(event) {
clearTimeout(timeoutTimer);
timeoutTimer = setTimeout(function(){
alert("TimeOut");
}, timeoutTime);
});
});
答案 5 :(得分:0)
如果您想要一个完整的窗口弹出窗口,除非用户已禁用您网站的弹出窗口拦截器,否则您无法执行此操作。但是,如果模态对话框对您有用,而您只是知道用户是否仍在查看您的页面,那么您可以使用以下内容:
setTimeout(function() {
var timeout = setTimeout(function() {
//logic to redirect if the user hasn't responded to dialog yet.
}, 60000); //waits 1 minute for response, change as needed
$('#dialog-element').on('dialogclose', function() {
clearTimeout(timeout);
$('#dialog-element').off('dialogclose');
});
}, 3600000); //one hour wait
这假设您正在使用jQuery UI,并将$('#dialog-element')设置为模式对话框(请参阅http://jqueryui.com/dialog/)。
答案 6 :(得分:0)
您可以创建时间计数器并使用jQuery来检测mousemove
和keypress
事件。经过一段时间后,会弹出一个对话框,您可以根据需要为其添加更多重定向逻辑:
<强> Demo Fiddle 强>
出于测试目的,将增量设置为1000
(1秒)而不是60000
,时间检查器设置为超过2秒:
var idleInterval = setInterval(timerIncrement, 1000); // 1 second
....
function timerIncrement() {
idleTime = idleTime + 1;
if (idleTime > 2) { // 2 seconds
参考:
答案 7 :(得分:0)
好吧,你可以尝试这段代码!
var timeoutTime = 1800000;
var timeoutTimer = setTimeout(function(){
alert("TimeOut");
}, timeoutTime);
$(document).ready(function() {
$('body').bind('mousedown keydown', function(event) {
clearTimeout(timeoutTimer);
timeoutTimer = setTimeout(function(){
alert("TimeOut");
}, timeoutTime);
});
});