記錄用戶是否首次訪問 或者用戶名,密碼等javascript
有時候,須要判斷用戶是否初次訪問網站。css
本文介紹一種javascript+cookie的方法。 經過javascript讀寫cookie,在cookie裏記錄用戶是否訪問過的信息。若是不能讀出相應信息,則說明用戶是初次訪問。java
什麼是cookie?瀏覽器
從安全角度考慮瀏覽器是不能直接寫本地硬盤的。 不過有些信息須要本地保存,就發明了cookie這麼個東西。 瀏覽器寫入cookie的信息大小,能夠寫的cookie個數都有限制。 另外,cookie是能夠設置期限的。例如:30天期限的話,30天后這個cookie就無效了(被刪除了吧)。安全
cookie的詳細信息就請教google吧。cookie
一個實現細節ide
我在實現該功能的時候,僅當訪客滾動頁面快到底部時,纔去判斷用戶是否首次訪問。 若是是首次訪問,就彈出對話框(DIV)詢問是否願意配合作 問卷調查 。函數
代碼動畫
閒話少說吧,具體內容參見注釋。 若是有沒寫清楚地,麻煩留言。網站
<script type="text/javascript">
// 綁定在頁面滾動時間上的處理函數。每當用戶滾動頁面,這個函數都會被調用。
$(window).scroll(function() {
var bottom = $(document).height() - $(window).height();
var position = $(this).scrollTop();
if(position > 900 || // 僅當訪客已經滾動必定範圍(閱讀一些內容)後
position > bottom*0.67 ) //當頁面較小時,按照比例算
{
var newVisitor = isNewVisitor();// 若是是新訪客
if(newVisitor === true)
{
// 動畫彈出消息框
$("#invite-questionnaire").animate({right:"0", bottom:"0"}, 100);
// 標記:已經向該訪客彈出過消息。30天以內不要再彈 setCookie("gznotes-visited","true", 30); } } }); </script> // 訪客點擊「沒空」後,用這個函數隱藏消息框 function hideQuestionnaire() { $("#invite-questionnaire").css("display","none"); } function isNewVisitor() { // 從cookie讀取「已經向訪客提示過消息」的標誌位 var flg = getCookie("gznotes-visited"); if (flg === "") { return true; } else { return false; } } // 寫cookie 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 +";path=/"; } // 讀cookie 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 ""; }