2017-08-29 50 views
0

如何在第一次訪問該頁面時點擊.popup-close後在給定頁面上禁止彈出窗口顯示2天?如何在第一次訪問該頁面之後點擊.popup-close後禁用彈出窗口在給定頁面上顯示2天?

這是我的代碼https://jsfiddle.net/4q1aL8pL/2/

我試着在我的代碼行122-140之間的localStorage。我是javascript初學者,請幫忙:)

Maby必須有一些計時器應用,這將計爲2天小時價值?

//<![CDATA[ 
     var n = Number(localStorage.getItem('odometerValue')) || 0; 
    var m = localStorage.getItem('displayNone'); 
     var myOdometer; 
     function startcounting() { 
      var div = document.getElementById("odometerDiv"); 
      myOdometer = new Odometer(div, {value: n, digits: 6, tenths: true}); 
    myOdometer.set(n);   
      update(); 
     } 

     function update() { 
      n=n+0.01 
      myOdometer.set(n); 
    localStorage.setItem('odometerValue', n); 
    localStorage.setItem('displayNone', m);   
      setTimeout(update, 200); 
     } 
    //]]> 
+1

我認爲存儲的localStorage/cookie的日期和每次訪問2天檢查完成將有助於 – Amogh

+0

聽起來很合理 –

回答

1

這是一個使用cookie的函數。

/* Show popup if cookie doesn't exist. Will hide for 2 days if closed */ 
var PopUpCookie = getCookie("MyPopUpCookie"); 
if (PopUpCookie == '') { 
     $('#odometerDiv').show(); 
    } else { 
     $('#odometerDiv').hide(); 
    } 
} 

$('.popup-close').on('click', function() { 
    $('#odometerDiv').hide(); 
    setCookie("MyPopUpCookie", "hide"); 
}); 

function setCookie(cname, cvalue) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (2*24*60*60*1000); /* 2 days */ 
    var expires = "expires=" + d.toUTCString(); 
    document.cookie = cname + "=" + cvalue + "; " + expires; 
} 

function getCookie(cname) { 
    var name = cname + "="; 
    var ca = document.cookie.split(';'); 
    for (var i = 0; i < ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') c = c.substring(1); 
     if (c.indexOf(name) == 0) return c.substring(name.length, c.length); 
    } 
    return ""; 
} 
2

您可以使用本地存儲來保存日期時彈出加載。

var d = new Date(); 

這將杜絕當前的日期,那麼所有你需要做的就是再次與訪問者的日期檢查,如果你減去他們,這等於2天后再次彈出。

相關問題