在第三页加载时显示隐藏的div

时间:2012-07-20 20:13:42

标签: javascript cookies

我有一个功能,可以在页面加载时向访问者显示隐藏的div特别优惠,然后设置一个cookie,使其仅在用户第一次加载页面时显示。我希望能够在div显示之前设置所需的访问次数,所以我只能在第3页加载时显示隐藏的div。但我无法弄清楚如何实现这一目标。有人能指出我正确的方向吗?

function CreatePopup(url, height, duration, description, lifetime) {
// Exit if the current browser has already received the popup, or 
// the browser is not supported (IE6).
if (HasAlreadyReceivedPopup(description) || IsUnsupportedUserAgent())
    return;

$.get(url, function(data) { 
    /*var popup = $("<div>" + data + "</div>")
        .attr({ "id": "sliding_popup" })
        .css({"bottom": -1 * height})
        .height(height)
        .hide()
        .appendTo("body");*/
        popup = $("<div>" + data + "</div>")
        .attr({ "id": "sliding_popup" })
        .hide()
        .appendTo("body");



    ShowPopup(description, lifetime, popup, duration); 
    });
}

function ShowPopup(description, lifetime, popup, duration) 
{ 

popup.show().animate( { top: 100 }, duration);
ReceivedPopup(description, lifetime);
}

function HasAlreadyReceivedPopup(description) { 
return document.cookie.indexOf(description) > -1; 
}

function ReceivedPopup(description, lifetime) { 
var date = new Date(); 
date.setDate(date.getDate() + lifetime); 
document.cookie = description + "=true;expires=" + date.toUTCString() + ";path=/";  
}

function IsUnsupportedUserAgent() { 
return (!window.XMLHttpRequest); 
}

function DestroyPopup(duration) {
$("#sliding_popup").animate({ top: $("#sliding_popup").height() * -1 }, duration,     function () { $("#sliding_popup").remove(); })
}

function SecondVisit(description)
{ 
 if (HasAlreadyReceivedPopup(description)) {
  return true;
 }
  else
 {
 return false;
 }

}

该函数在包含中调用:

该函数被调用如此

$(document).ready(function () { 
// This check is used by the demo to allow you to remove the cookie. Do not use in production code.
if (HasAlreadyReceivedPopup("promo"))
$("#note").show().click(function () { 
document.cookie = name + "promo=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT"; location.reload(true); 
});

CreatePopup("page.html", 300, 1500, "promo", 5); 
});

2 个答案:

答案 0 :(得分:0)

创建一个cookie,其中包含与您的特价商品对话框相关的名称,并存储用户的IP地址和访问页面的次数。因此,如果用户没有“特殊”Cookie,则创建它并将访问量指定为1.在所有进一步的访问中,只需增加此金额,一旦它为3或您需要的任何金额显示您的对话框。

答案 1 :(得分:0)

只需将Cookie设为计数器并计算您想要提供的n次。

如果n次不匹配,则每次访问页面都会增加访问者的计数器,直到第n次。你只需用if()来检查。如果已设置,则:将cookie重置为0次(如果您希望在第n次再次显示)并显示弹出窗口。

使用$ .cookie,因为你使用jquery,因为它更好地处理javascript。