2014-05-11 70 views
0

首先,我想说我对javascript,jquery和/或php很陌生。后者我什么都不知道,其他两个也不是那么远。Cookie重定向到启动页面

这就是说,我已经在很多场合上搜索了很多小时的互联网,以此来计算这个(不可否认的是,有些特定但仍然如此广泛使用)的东西。在我看来,好像重新引导人们进入带有cookie的启动页面一样,保持了可口可乐食谱的秘密。

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

请帮忙!

概括地说:

游客负荷的index.html

饼干承认

if visited before 

什么都不做

else 

重定向到splash.html

说真的,非常感谢任何能够帮助我的人。

此外,任何帮助,在哪里从绝对从头学习JavaScript容易被赞赏。

+0

你想这样做只使用Javascript(在客户端),而不涉及服务器端?您的网站是否已经使用PHP,或者它只是一组纯HTML页面? – izstas

+0

我并不特别介意它是如何工作的,以防PHP显着更容易,但现在,我更喜欢JavaScript,因为我似乎能够更轻松地阅读它。我的网站到目前为止只是一组HTML页面,我想保留它。感谢您的答复! – Wiking

回答

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的插件。 感谢您的帮助!

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的价值,你得到的分号 - 分离的cookies列表。第一行的正则表达式查找名为someCookieName的Cookie的值。

当您设置的document.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"; 
} 
+0

非常感谢您的快速和一致的回应。不过,我不得不说,我不完全明白这是如何工作的。我是否简单地使用你给我的代码,你说应该把它放在我的html文件的头标签中,然后将它上传到我的FTP服务器,它应该可以工作吗?我感觉有些东西可能会被遗漏。尽管我查看了你提供给我的developer.mozilla.org链接(顺便说一句 - 非常全面的源代码),但我无法发现它。 – Wiking

+0

将代码包装在'script'标签中,放在'head'里面,它应该可以工作。 – izstas