2016-06-21 99 views
0

我有一個已經生成的彈出式調查Jacascript代碼,顯示我的調查。我怎樣才能創建一個cookie,使其僅在用戶進入網站後30秒彈出,並且每30天只發生一次?如何爲SurveyMonkney Javascript創建一個cookie?

這裏是我的腳本文件:

(function(t, e, n, o) { 
 
    var s, c, a; 
 
    t.SMCX = t.SMCX || [], e.getElementById(o) || (s = e.getElementsByTagName(n), c = s[s.length - 1], a = e.createElement(n), a.type = "text/javascript", a.async = !0, a.id = o, a.src = ["https:" === location.protocol ? "https://" : "http://", "widget.surveymonkey.com/collect/website/js/AhN7nUpZa9_2F3gC6vSJkN3VsWkmDw6Oj7PaJqgjpmRLRGE8ot_2F8YzI1OnVSkE7Fll.js"].join(""), c.parentNode.insertBefore(a, c)) 
 
})(window, document, "script", "smcx-sdk");

任何意見將幫助!謝謝

回答

0

假設你的函數工作得很好,你可以試試這個:

1)在頁面加載,請檢查您自己的Cookie(你可以設置當你創建它在30天后到期)

2)如果你找到一個cookie,你就完成了。用戶在過去30天內看過您的調查。 3)如果沒有cookie,請等待30秒,將cookie設置爲30天后過期,並顯示調查結果。

<script> 
function showSurvey() { 
    console.log('About to show survey...'); 
    // put your survey popup function here 
} 

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 ""; 
} 

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

function checkCookie() { 
    var cookieToCheck = getCookie("myCookie"); 
    if (cookieToCheck !== "") { 
     console.log('Do nothing; user has cookie.'); 
    } else { 
     setTimeout(function() {     // do this after 30 seconds 
      setCookie("myCookie", "foo", 30);  // set your cookie 
      showSurvey(); 
     }, 30000); 
    } 
} 

checkCookie(); // check the cookie on page load 
</script> 

請注意,如果用戶重新加載頁面,他們將殺死您的setTimeout()。如果您需要處理頁面重新加載,則需要服務器端會話或另一個cookie來跟蹤用戶訪問網站的時間。然後,您將在服務器上決定用戶是否應該看到調查。沒有更多的瞭解你的環境,這個簡單的客戶端解決方案是我可以爲你建議的。