Fancybox popup once time for session

耗尽温柔 提交于 2019-12-01 01:20:37

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 :

  • In order to see the cookie working, you may need to use jsfiddle's full screen mode http://jsfiddle.net/aVE9N/show/
  • I would advice you to update (at least) your fancybox version from v1.3.1 to v1.3.4
  • It's assumed you are loading properly the jQuery cookie plugin in your page

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!