当我的网站加载时,我正在使用显示模式加载弹出窗口。但是,每次页面加载时都会加载弹出窗口。由于一个访问者可以访问多个页面或多个实例,这种限制对我们的访问者体验是不利的。
下面是我用来在页面加载后加载模式的js。
jQuery(document).ready(function($) {
/* Pop-up
================================================= */
$(function() {
function showpanel() {
$('.reveal-modal').reveal({
animation: 'fade',
animationspeed: 800
});
}
setTimeout(showpanel, 4000)
});
});我可以添加什么来确保无论访问者访问多少不同的页面,显示模式在特定的一天只加载一次?
都会很感谢你的帮助。
谢谢
发布于 2014-01-21 16:45:27
要做到这一点,最简单的方法是使用只持续24小时的cookie。
您要做的是检查是否有cookie,如果没有,则显示对话框
if($.cookie('MyCookie') != 'DialogShown'){
showpanel();
setCookie();
}下面是设置它的代码
function setCookie(){
$.cookie('MyCookie', 'DialogShown',
{
expires: date.getTime() + (24 * 60 * 60 * 1000) // now add 24 hours
});
}然而,请注意,用户可能已经将他们的浏览器配置为拒绝cookies,而在英国(可能还有其他国家有关于使用cookies的网站的regulations )。
发布于 2014-01-21 16:45:36
您将需要持久存储,如cookies、localStorage或服务器端存储。
$(function() {
if ( localStorage.getItem('seen') != (new Date()).getDate()) {
setTimeout(showpanel, 4000);
}
});
function showpanel() {
$('.reveal-modal').reveal({
animation: 'fade',
animationspeed: 800
});
localStorage.setItem('seen', (new Date()).getDate());
}在MDN上有一个针对旧浏览器的polyfill
发布于 2014-01-21 16:45:27
对于客户端解决方案,您可以使用cookie在用户浏览器中进行设置,并将其设置为过期1天。
$.cookie('the_cookie', 'the_value', { expires: 1 });有关详细信息,请参阅:https://github.com/carhartl/jquery-cookie
编辑:
在html页面中包含Jquery-cookie插件,然后添加以下代码
$(function() {
if($.cookie('alreadyShow') === null) {
$.cookie('alreadyShow', true, {expires: 1});
$('.reveal-modal').reveal({
animation: 'fade',
animationspeed: 800
});
}
});https://stackoverflow.com/questions/21253015
复制相似问题