2014-09-02 82 views
1

我正在嘗試爲我的網站實現Cookie,我只是想將用戶重定向到一個啓動頁面並在那裏有一個「記住我」複選框,並且一旦他們檢查了並按下回車鍵,他們將不再看到該頁面。 因此,使用COOKIE Plugin我可以爲用戶設置Cookie,並重定向到該頁面,但我沒能實現如何檢測記得我裝箱。不再顯示此頁面(JQUERY cookie)

$(function() { 
    var COOKIE_NAME = 'splash-page-cookie'; 
    $go = $.cookie(COOKIE_NAME); 
    if ($go == null) { 
     $.cookie(COOKIE_NAME, 'test', { path: '/', expires: 6 }); 
     window.location = "/splash.php" 
    } 
    else { 
    } 
}); 

有人有這樣做過?或者任何人有任何類似的想法來實現這個?

任何幫助,將不勝感激。

回答

2

解決方案#1(帶有警報框):我想出了這個,但沒有COOKIE插件。希望你能從中獲得一些用處。大多數純JJ和一些JQuery讓它看起來有點兒。

這裏是DEMO

下面的代碼:

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Untitled Document</title> 
<!-- JQuery --> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

<script> 
$(document).ready(function(e) { 
    $('#remember').click(function() { 
     if (this.checked) { 
      $('#x').text("You're the Best!"); 
      setCookie(); 
     } else { 
      $('#x').text("Come on, You know you want to!"); 
     } 
    }); 
}); 

function setCookie() { 
    user = prompt("Please enter your name:",""); 
    if (user != "" && user != null) { 
     addCookie("username", user, 30); 
    } 
} 

function addCookie(cname,cvalue,exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
    var expires = "expires=" + d.toGMTString(); 
    document.cookie = cname+"="+cvalue+"; "+expires; 
    //window.location.href = "https://www.google.com"; // redirect after the prompt 
} 

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) != -1) { 
      return c.substring(name.length, c.length); 
     } 
    } 
    return ""; 
} 

function checkCookie() { 
    var user=getCookie("username"); 
    if (user != "") { 
     alert("Welcome again " + user); 
     window.location.href = "https://www.google.com"; 
    } 
} 
function goTo() { 
    window.location.href = "https://www.google.com"; 
} 
</script> 
</head> 
<body onLoad="checkCookie();"> 
<h1>Splash Page</h1> 
<form> 
<input type="checkbox" id="remember"> Remember me 
<br> 
<input type="button" value="Enter" onClick="goTo();"> 
</form> 
<p><div id='x'></div></p> 
</body> 
</html> 

溶液#2(NO警報框):我想出了這個作爲第二簡化的解決方案由請求是與移動(鉻等)更相容。希望你能從中獲得一些用處。大多數純JJ和一些JQuery讓它看起來有點兒。

這是DEMO

下面的代碼:

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Untitled Document</title> 
<!-- JQuery --> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
$(document).ready(function(e) { 
    $('#remember').click(function() { 
     if (this.checked) { 
      $('#x').text("You're the Best!!!"); 
      addCookie(30); 
     } else { 
      $('#x').text("Come on, You know you want to!"); 
      deleteAllCookies(); 
     } 
    }); 
}); 

function deleteAllCookies() { 
    var cookies = document.cookie.split(";"); 
    for (var i = 0; i < cookies.length; i++) { 
     var cookie = cookies[i]; 
     var eqPos = cookie.indexOf("="); 
     var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; 
     document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; 
    } 
} 

function addCookie(exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
    var expires = "expires=" + d.toGMTString(); 
    document.cookie = expires; 
} 

function checkCookie() { 
    if (document.cookie == false) { 
     //alert("Welcome New User"); 
    } else if (document.cookie.indexOf("expires") >= 0) { 
     //alert("Welcome Back"); 
     window.location.href = "https://www.google.com"; 
    } 
} 

function goTo() { 
     window.location.href = "https://www.google.com"; 
} 
</script> 
</head> 
<body onLoad="checkCookie();"> 
<h1>Splash Page</h1> 
<form> 
<input type="checkbox" id="remember"> Remember me 
<br> 
<input type="button" value="Enter" onClick="goTo();"> 
</form> 
<p><div id='x'></div></p> 
</body> 
</html> 
+0

抱歉耽擱,我離開了一段時間..只是看到了這一點,這是偉大的,我們可以擺脫提示的,只是設定默認名稱餅乾嗎? – Amir 2014-09-16 19:32:22

+0

沒關係,我做到了。 – Amir 2014-09-16 20:01:38

+0

它不適用於Chrome/Android。 。但是在桌面和移動設備(Chrome,Safari,Opera,FF)中的所有其他瀏覽器上工作,你知道那會是什麼問題嗎? – Amir 2014-09-16 22:02:36