禁用fancyfox弹出窗口外侧的everty javascript事件
等待一段时间后,我打开fancybox,等待登录用户的会话超时。弹出窗口将禁用,用户将自动注销,但如果我在弹出窗口外单击,计数器时间将设置为0,因此不会注销禁用fancyfox弹出窗口外侧的everty javascript事件,javascript,jquery,popup,fancybox,Javascript,Jquery,Popup,Fancybox,等待一段时间后,我打开fancybox,等待登录用户的会话超时。弹出窗口将禁用,用户将自动注销,但如果我在弹出窗口外单击,计数器时间将设置为0,因此不会注销 window.idleTime = 0; jQuery(document).ready(function() { //Increment the idle time counter every minute. var idleInterval = setInterval(timerIncrement, 60000);
window.idleTime = 0;
jQuery(document).ready(function() {
//Increment the idle time counter every minute.
var idleInterval = setInterval(timerIncrement, 60000);
//Zero the idle timer on mouse movement.
jQuery(this).mousemove(function (e) {
idleTime = 0;
//alert(idleTime);
});
jQuery(this).keypress(function (e) {
idleTime = 0;
//alert(idleTime);
});
jQuery(".classname").live("click", function(){
//alert('');
idleTime = 0;
})
});
function timerIncrement() {
var timedouturl = "logout.php?sTimeOut=1";
//alert('Calling..');
idleTime = idleTime + 1;
if (idleTime > 2) { // 1 minutes
//alert('Time Out =>'+idleTime);
//window.location.reload();
jQuery.fancybox({
'type' : 'ajax',
'href' : 'popup.php',
'autoSize' : false,
'width' : 450,
'height' : 'auto',
afterLoad : function(){
//alert("IdleTime :"+idleTime);
setTimeout( function() {
jQuery.fancybox.close();
//alert("LastIdleTime :"+ window.idleTime);
if (window.idleTime > 2){
window.location.href = timedouturl;
}
},60000);
}
});
}
}
当弹出窗口在弹出窗口之外打开时,我想阻止每个js事件。有什么想法吗
这里
用于单击fancybox上的“确定”按钮。您可以使用一个布尔值来跟踪弹出窗口打开的时间,然后仅在弹出窗口未打开时重置超时:
window.idleTime = 0;
var timeoutPopupOpen = false;
jQuery(document).ready(function() {
//Increment the idle time counter every minute.
var idleInterval = setInterval(timerIncrement, 60000);
//Zero the idle timer on mouse movement.
jQuery(this).mousemove(function (e) {
if (!timeoutPopupOpen) {
idleTime = 0;
}
//alert(idleTime);
});
jQuery(this).keypress(function (e) {
if (!timeoutPopupOpen) {
idleTime = 0;
}
//alert(idleTime);
});
jQuery(".classname").live("click", function(){
if (!timeoutPopupOpen) {
idleTime = 0;
}
//alert('');
})
});
function timerIncrement() {
var timedouturl = "logout.php?sTimeOut=1";
//alert('Calling..');
idleTime = idleTime + 1;
if (idleTime > 2) { // 1 minutes
//alert('Time Out =>'+idleTime);
//window.location.reload();
timeoutPopupOpen = true
jQuery.fancybox({
'type' : 'ajax',
'href' : 'popup.php',
'autoSize' : false,
'width' : 450,
'height' : 'auto',
afterClose : function(){
timeoutPopupOpen = false;
},
afterLoad : function(){
//alert("IdleTime :"+idleTime);
setTimeout( function() {
jQuery.fancybox.close();
//alert("LastIdleTime :"+ window.idleTime);
if (window.idleTime > 2){
window.location.href = timedouturl;
}
},60000);
}
});
}
}
我不确定您使用的是哪个Fancybox,因为我似乎无法在or中找到后加载选项,但实际上,只要跟踪某人何时启动和关闭fancybox,您就知道是否应该取消超时。afterLoad是一个回调,因此您可以在callbacks选项卡fancybox v2.xi下找到它。如果fancybox打开并且访问者移动鼠标,是否要将空闲时间重置为0?所以没有注销。。。除非他们在fancybox打开时等待1分钟?顺便说一句,不推荐使用live,否则使用on需要jQuery v1.7+
window.idleTime = 0;
var timeoutPopupOpen = false;
jQuery(document).ready(function() {
//Increment the idle time counter every minute.
var idleInterval = setInterval(timerIncrement, 60000);
//Zero the idle timer on mouse movement.
jQuery(this).mousemove(function (e) {
if (!timeoutPopupOpen) {
idleTime = 0;
}
//alert(idleTime);
});
jQuery(this).keypress(function (e) {
if (!timeoutPopupOpen) {
idleTime = 0;
}
//alert(idleTime);
});
jQuery(".classname").live("click", function(){
if (!timeoutPopupOpen) {
idleTime = 0;
}
//alert('');
})
});
function timerIncrement() {
var timedouturl = "logout.php?sTimeOut=1";
//alert('Calling..');
idleTime = idleTime + 1;
if (idleTime > 2) { // 1 minutes
//alert('Time Out =>'+idleTime);
//window.location.reload();
timeoutPopupOpen = true
jQuery.fancybox({
'type' : 'ajax',
'href' : 'popup.php',
'autoSize' : false,
'width' : 450,
'height' : 'auto',
afterClose : function(){
timeoutPopupOpen = false;
},
afterLoad : function(){
//alert("IdleTime :"+idleTime);
setTimeout( function() {
jQuery.fancybox.close();
//alert("LastIdleTime :"+ window.idleTime);
if (window.idleTime > 2){
window.location.href = timedouturl;
}
},60000);
}
});
}
}