我有一个简报注册表单,我想每15天加载一次(弹出),否则可能会有点恼人。我目前正在使用此jquery代码在页面加载时加载弹出窗体。
<div id="test-popup" class="white-popup mfp-hide">
Popup Form
</div>
<script>
jQuery(window).load(function(){
jQuery.magnificPopup.open({
items: {src: '#test-popup'},type: 'inline'}, 0);
});
</script>
每次访问页面时加载表单都可以正常工作,但我想限制这一点,以便新用户每15天看一次。不确定15天是最好的做法,我想出的是什么?
答案 0 :(得分:8)
您can使用localStorage执行此操作。
$(window).on('load', function() {
var now, lastDatePopupShowed;
now = new Date();
if (localStorage.getItem('lastDatePopupShowed') !== null) {
lastDatePopupShowed = new Date(parseInt(localStorage.getItem('lastDatePopupShowed')));
}
if (((now - lastDatePopupShowed) >= (15 * 86400000)) || !lastDatePopupShowed) {
$.magnificPopup.open({
items: { src: '#test-popup' },
type: 'inline'
}, 0);
localStorage.setItem('lastDatePopupShowed', now);
}
});
<div id="test-popup" class="white-popup mfp-hide">
Popup Form
</div>
您可以在此处查看一个有效的示例:http://codepen.io/caio/pen/Qwxarw
答案 1 :(得分:1)
用于创建和读取cookie的函数:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
创建一个为期15天的cookie:
createCookie('run_popup',true,15);
检查已过去15天
if(!readCookie('run_popup'))
... code for run popup...
答案 2 :(得分:0)
要让用户每15天打开一次弹出窗口,您可能希望设置一个每15天到期的Cookie。在您的页面上,检查cookie是否已过期,如果是,则显示您的表单并重置您的cookie。
在this thread中,您可以找到快速启动Cookie的材料。
这将适用于每台计算机的每个浏览器,即如果用户在其他浏览器中打开您的页面,它将再次加载您的弹出窗口。