0

ページの読み込み時に非表示の 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); 
});
4

2 に答える 2

0

特別オファーダイアログに関連する名前のCookieを作成し、ユーザーのIPアドレスとユーザーがページにアクセスした回数を保存します。したがって、ユーザーが「特別な」Cookieを持っていない場合は、Cookieを作成し、訪問数を1に割り当てます。それ以降のすべての訪問では、この量を増やすだけで、3または必要な量になったらダイアログを表示します。

于 2012-07-20T20:21:11.940 に答える
0

クッキーをカウンターにして、オファーをポップする回数を n 回数えるだけです。

n 回が一致しない場合、ページへの訪問ごとに訪問者のカウンターが n 回目まで増加します。これは、if() で簡単に確認できます。設定されている場合: Cookie を 0 回にリセットし (n 回目に再度表示する場合)、ポップアップを表示します。

jquery を使用しているため、javascript をより適切に処理できるため、$.cookie を使用してください。

于 2012-07-20T20:21:18.853 に答える