每“x”页面加载时加载灯箱

时间:2014-03-11 12:58:34

标签: javascript jquery

我使用的是一个jQuery Colorbox onLoad灯箱,没问题。

这是到目前为止的代码,我想知道如何使灯箱每5页加载一次(例如)。因此,当用户浏览网站时,他们访问灯箱的每5个页面就会出现。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="res/jquery.colorbox-min.js"></script>
<script type="text/javascript">
        $(document).ready(function(){
            setTimeout(function() {
        $.fn.colorbox({href:"xxxxx.jpg", open:true});  
        }, 1500);
          });
</script>

谢谢,任何帮助都表示赞赏,即使你能指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

通常,您必须跟踪页面加载计数。就像安东尼建议的那样,你应该把它放在饼干里。

我在网上发现了两个处理Cookie的功能:cname = Cookie名称,cvalue是您在Cookie中保存的内容,而milliseconds是Cookie有效的时间; < / p>

function setCookie(cname, cvalue, milliseconds) {
    var d = new Date();
    d.setTime(d.getTime() + (milliseconds));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}

所以你想要做的是每个页面加载检索带有计数的cookie并增加它:

var _pageloads = getCookie("PageLoadCount");
if(_pageloads=="")
{
_pageloads=0;
}

_pageloads +=1;
if(_pageloads ==5){
_pageloads =0;   //reset your counter

//pop up the lightbox
}

setCookie("PageLoadCount",_pageloads,1 * 60 * 1000);  //make cookie valid for one hour