我的项目有5个页面:1个首页和4个子页面。我有一个弹出窗口,显示在首页上显示的“触摸开始”。我正在使用后退按钮预取4个子页面以返回到首页。我已经设置了一个计时器,如果项目闲置了X段时间,请加载首页。
我已经设置了一个在首页上创建的cookie,用于跟踪是否显示了弹出窗口,因为我不希望每次用户导航到子页面时都显示弹出窗口到前面。当计时器关闭并重新加载到首页时,cookie将被删除。
Cookie创建和删除有效但当我导航到子页面并返回首页时,我仍然看到弹出窗口。如果我刷新页面,cookie将被视为现有,并且弹出窗口不会显示,并且在计时器关闭之前不会被清除,因此cookie可以正常工作。只是导航并返回首页时看不到cookie。有什么想法吗?
(function($) {
if ($.cookie('kiosk') !== 'YES') {
$(document).on("pageshow", function() {
$('#touchPopup').popup('open');
$.cookie('kiosk', 'YES'); //set cookie
console.log("Cookie created");
});
}
var timer = null;
function goAway() {
clearTimeout(timer);
timer = setTimeout(function() {
console.log("Removing cookie");
$.removeCookie('kiosk', 'YES'); //delete cookie
window.location = 'http://localhost/kiosk';
}, 5000);
}
window.addEventListener('mousemove', goAway, true);
goAway();
})(jQuery);
编辑:我现在有一个实时版本http://lemonlimedesigns.ca/tohr/kiosk。
您可以看到对话框打开,如果您关闭它,导航并返回,即使在控制台中您仍可以看到它检查cookie。
编辑2:解决了!我简化了代码,现在它正常工作:
$(document).on("pageshow","#kiosk-front", function() {
console.log("checking cookie");
if ($.cookie('kiosk') !== 'YES') {
$('#touchPopup').popup('open');
$.cookie('kiosk', 'YES'); //set cookie
console.log("Cookie created");
} else {
console.log("Cookie exists");
}
});