I have a popup with fancybox that appear at load page.
I need to show the popup once a time, if the user change page and back on the page with popup doesn\'t reveal
Using the jQuery cookie plugin you suggested:
$(document).ready(function() {
if(typeof $.cookie('popupVideoPlayed') == 'undefined') {
$.cookie('popupVideoPlayed', 'true'); // set a session cookie so it won't play again
$('#yt').trigger('click');
}
});
Remember to delete the inline body onload event handler.
For browser consistency, you may need to delay the fancybox load execution for the first time so try this code :
function openFancybox() {
// launches fancybox after half second when called
setTimeout(function () {
$('#yt').trigger('click');
}, 500);
};
$(document).ready(function () {
var visited = $.cookie('visited'); // create the cookie
if (visited == 'yes') {
return false; // second page load, cookie is active so do nothing
} else {
openFancybox(); // first page load, launch fancybox
};
// assign cookie's value and expiration time
$.cookie('visited', 'yes', {
expires: 7 // the number of days the cookie will be effective
});
// your normal fancybox script
$("#yt").click(function () {
$.fancybox({
// your fancybox API options
});
return false;
});
});
See code at this JSFIDDLE
NOTES :
¡UPDATED!
If you're using the newest JavaScript Cookie plugin this is for you:
HTML
<a class="c-p" href="#cookies" style="display: none;">Inline</a>
<div id="cookies" style="display: none;">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos rem nulla quae dolorum omnis possimus, ducimus nisi pariatur harum debitis quo, excepturi nam ratione modi. Architecto, enim. Amet, saepe mollitia?</p>
</div>
JavaScript
function openFancybox() {
setTimeout( function() {jQuery('.c-p').trigger('click'); },1500);
}
jQuery(document).ready(function() {
if (Cookies.get('visited')) {
return false;
} else {
Cookies.set('visited', 'no', { expires: 7 });
}
if (Cookies.get('visited') == 'yes') {
return false;
} else {
openFancybox();
Cookies.set('visited', 'yes');
}
jQuery('.c-p').fancybox();
});
Note: I implemeted it in my custom WordPress theme and it worked perfectly.