我有一个功能,可以在页面加载时向访问者显示隐藏的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);
});
答案 0 :(得分:0)
创建一个cookie,其中包含与您的特价商品对话框相关的名称,并存储用户的IP地址和访问页面的次数。因此,如果用户没有“特殊”Cookie,则创建它并将访问量指定为1.在所有进一步的访问中,只需增加此金额,一旦它为3或您需要的任何金额显示您的对话框。
答案 1 :(得分:0)
只需将Cookie设为计数器并计算您想要提供的n次。
如果n次不匹配,则每次访问页面都会增加访问者的计数器,直到第n次。你只需用if()来检查。如果已设置,则:将cookie重置为0次(如果您希望在第n次再次显示)并显示弹出窗口。
使用$ .cookie,因为你使用jquery,因为它更好地处理javascript。