Cookie重定向到启动页面

时间:2014-05-11 10:53:12

标签: redirect cookies splash visited

首先,我想说我是javascript,jquery和/或php的新手。在后者中我什么都不知道,而另外两个距离不远。

话虽这么说,我已经在互联网上搜了好几个小时了很多时间来计算这个(不可否认的是具体而且广泛使用的)事情。在我看来,好像将人们重定向到带有cookie的启动页面一样,保存了可口可乐食谱的秘密。

我想,我想要的是相当简单的。当访问者访问我的网站时,他们会到达index.html(按照惯例)。我想在这个页面上实现一个cookie,它将自己应用于访问者。它必须检查访问者之前是否曾访问过该网站。如果没有,它会重定向到splash.html。启动页面将用于访问者选择他/她希望查看该网站的语言以及其他HTML页面的链接 - 我可以这样做。我已经在这里和那里找到了一些片段,但是javascript看起来太复杂了,并且总是会有某些东西丢失,不知何故,能够适用于我并正常运行。

请帮忙!

概括说明:

  

访问者加载index.html

     

Cookie承认

if visited before
     

什么都不做

else
     

重定向到splash.html

说真的,谢谢任何可以帮助我的人。

此外,任何有关如何从绝对划痕学习Javascript的帮助都很受欢迎。

2 个答案:

答案 0 :(得分:0)

在Mozilla开发者网络上有一篇关于在Javascript中使用cookie的好文章:https://developer.mozilla.org/en-US/docs/Web/API/document.cookie

Example #3bis

应该对您有所帮助
if (document.cookie.replace(/(?:(?:^|.*;\s*)someCookieName\s*\=\s*([^;]*).*$)|^.*$/, "$1") !== "true") {
    alert("Do something here!");
    document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";
}

当您获得document.cookie的值时,您将获得以分号分隔的Cookie列表。第一行中的正则表达式查找名为someCookieName的cookie的值。

当您设置document.cookie的值时,您可以设置或更新一个Cookie(您不会覆盖整个Cookie列表)

要重定向访问者,您可以使用document.location property

以下代码应该满足您的需求:

if (document.cookie.replace(/(?:(?:^|.*;\s*)seenSplash\s*\=\s*([^;]*).*$)|^.*$/, "$1") !== "true") {
    document.cookie = "seenSplash=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";
    document.location = "/splash.html";
}

答案 1 :(得分:0)

我发现这个解决方案可以满足我的需求:

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

此脚本适用于Carhartl Jquery cookie插件。 谢谢你的帮助!