0

我有一个功能,可以在页面加载时向访问者显示隐藏的 div 特价商品,然后设置一个 cookie,以便它仅在用户第一次加载页面时显示。我希望能够在显示 div 之前设置所需的访问次数,所以我只能在第三页加载时显示隐藏的 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); 
});
4

2 回答 2

0

创建一个与您的特价对话框相关的名称的 cookie,并存储用户的 IP 地址和他访问页面的次数。所以,如果用户没有你的“特殊”cookie,你创建它并将访问量分配给 1。在所有进一步的访问中,只需增加这个数量,一旦它是 3 或你需要的任何数量,就会显示你的对话框。

于 2012-07-20T20:21:11.940 回答
0

只需将 cookie 设为计数器并计算您希望您的报价弹出的 n 次。

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

使用 $.cookie,因为您使用的是 jquery,因为它可以更好地处理 javascript。

于 2012-07-20T20:21:18.853 回答