我正在尝试建立一个系统,当用户登陆特定页面时会创建cookie。
例如: 如果用户转到.com / jp / a3,则会创建一个cookie。
我正在使用此代码创建cookie,它似乎是在该页面上创建cookie。
<script>
document.cookie = "name_of_cookie=a3; expires=31 Dec 2017 12:00:00 UTC; path=/"
</script>
我目前创建了.com / jp / a1到.com / jp / a3的页面。因此有可能创建三个cookie。
用户下次访问后,我希望浏览器检查这些Cookie,并在用户访问正常着陆页时重定向回该页面。如果用户访问过多个页面,我希望将优先级设置为他们首先访问的页面。 (这可能涉及将一些if else语句编码到我的javascript中以设置我假设的cookie?)如果这很困难,我可以通过a1-a3列表作为具有最高优先级的a1和a3最低的a1。
我已尝试将以下代码添加到我的website.com/index.html文件中,但我没有运气。
<script>
function getCookie(cname) {
var name = name_of_cookie + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.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 checkCookie() {
var redirect = getCookie("name_of_cookie");
if (redirect != "") {
window.location = "http://www.website.com/jp/" + redirect;
} else {
window.location = "http://www.website.com/"
}
}
checkCookie();
</script>
我认为我可能遇到的一个问题是,当我在a3.com页面上时,我能够在我的存储空间中看到cookie,但是,当我转到我的index.html页面时,我不是能够在我的存储中看到cookie。 我已将路径设置为/,这只会使.com / jp /子文件夹中的cookie可用,还是可以在.com / index.html页面上访问?
提前感谢您提供的任何帮助。
答案 0 :(得分:0)
您似乎错误地定义了getCookie函数。在测试时,我得到了错误name_of_cookie is not defined
。您的getCookie()
函数的第一行似乎在您定义参数name_of_cookie
cname
而不是getCookie(cname)
您所要做的就是将其更改为
var name = cname + "=";
此外,通过将路径指定为/
,您也应该能够看到索引中的Cookie。
答案 1 :(得分:0)
简单的错误!
我在第二行忘记了name_of_cookie周围的引文。
更正的答案是:
<script>
function getCookie(cname) {
var name = "name_of_cookie" + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.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 checkCookie() {
var redirect = getCookie("name_of_cookie");
if (redirect != "") {
window.location = "http://www.website.com/jp/" + redirect;
} else {
window.location = "http://www.website.com/"
}
}
checkCookie();
</script>
感谢大家的帮助!