2016-06-21 4 views
0

私は、私の調査を示すポップアップ調査のジャワスクリプトコードを既に生成しています。クッキーを作成して、ウェブサイトのユーザーが30秒後にポップアップするようにするにはどうすればいいですか?30日に1回しか発生しません。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)クッキーが見つかったら、これで完了です。ユーザーは過去30日間にあなたのアンケートを見ました。

3)クッキーがない場合は30秒待ってから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が必要です。ユーザーがサーベイを参照する必要がある場合は、サーバーを決定します。あなたの環境をもっと理解していなければ、このシンプルなクライアント側の解決策は私があなたのために提案することができます。

関連する問題