2016-06-21 5 views
0

У меня есть уже сгенерированный всплывающий опрос кода Jacascript, который показывает мое исследование. Как я могу создать файл cookie, чтобы он появлялся только через 30 секунд после входа пользователя на веб-сайт и срабатывал только один раз каждые 30 дней?Как создать файл cookie для SurveyMonkney Javascript?

Вот мой файл сценария:

(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) При загрузке страницы, проверьте свой собственный печенья (который вы истекает через 30 дней, когда вы создаете его)

.

2) Если вы найдете файл cookie, все готово. Пользователь просмотрел ваш опрос за последние 30 дней.

3) Если нет печенья, подождите 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(). Если вам нужно иметь дело с перезагрузкой страницы, вам понадобится сеанс на стороне сервера или другой куки-файл, чтобы отслеживать время, которое пользователь находился на сайте. Затем вы решите на сервере, если пользователь должен увидеть опрос. Без лучшего понимания вашей среды это простое клиентское решение - все, что я могу вам предложить.

Смежные вопросы