0

オーバーレイを追加するために次のコードを追加しています

$(function () {

    {
        $('#overlay').fadeIn('fast', function () {
            $('#overlaybox').animate({ 'top': '90px' }, 500);
            //$('#box').css("top", (($(window).height() - this.outerHeight()) / 2) + $(window).scrollTop() + "px");
            $('#overlaybox').css("left", (($(window).width() - $('#overlaybox').outerWidth()) / 2) + $(window).scrollLeft() + "px");

            $('#nabshow').fadeOut('fast');

          })
    }



});

Cookieの可用性に基づいてポップアップを開くための次のコードを見つけました。

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays===null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x===c_name)
    {
    return unescape(y);
    }
  }
}

function showPopupOnce() {
   var hasSeenPopup = myGetCookie("has_seen_popup");
  if (hasSeenPopup === null || hasSeenPopup === ""){
     // the user has never seen the popup, so show him!
    window.open("http://mywebsite.com/popup.html", "myPopupWindow");
   }

   // either way, set the cookie so the user will never see the window again
   mySetCookie("has_seen_popup", "true", 365); // 365 days = 1 year
}

<body onLoad="showPopupOnce();">

オーバーレイコードが1回だけ表示されるようにするために、オーバーレイコードで行う必要のある変更は何ですか。get cookie関数とsetcookie関数を追加してから、次のようにします。

ありがとうArnab

4

1 に答える 1

1

あなたはすでにすべてをしました!showPopupOnce()コードを編集するために必要なことはすべてです。

function showPopupOnce() {
    var hasSeenPopup = myGetCookie("has_seen_popup");
    if (hasSeenPopup === null || hasSeenPopup === "") {
        // the user has never seen the popup, so show him!
        $('#overlay').fadeIn('fast', function() {
            $('#overlaybox').animate({
                'top': '90px'
            }, 500);
            //$('#box').css("top", (($(window).height() - this.outerHeight()) / 2) + $(window).scrollTop() + "px");
            $('#overlaybox').css("left", (($(window).width() - $('#overlaybox').outerWidth()) / 2) + $(window).scrollLeft() + "px");
            $('#nabshow').fadeOut('fast');
        })
        window.open("http: //mywebsite.com/popup.html", "myPopupWindow");
        }
        // either way, set the cookie so the user will never see the window again
        mySetCookie("has_seen_popup", "true", 365); // 365 days = 1 year
    }
}​

現在、無名関数にオーバーレイコードがあります。そのため、ページが読み込まれるたびに実行されます。Cookieがない場合にコードをshowPopup関数に移動すると、それはあなたがしたいことをします。

説明/ヘルプが必要な場合はお知らせください。

于 2012-04-27T05:47:01.517 に答える