只用javascript和没有cookies的年龄验证:如何?

时间:2012-07-20 13:33:33

标签: javascript cookies

我正在为一家销售啤酒的欧盟公司建立一个网站,并需要一个年龄验证启动画面。这很简单,我已经有了一个。我在页眉中使用了一个轻量级Cookie插件(cookie.js上的优秀http://microjs.com)。这或多或少是我的设置:

JS(在<head>元素中)

if (cookie.get("agechecked")) {
    document.documentElement.className += " agechecked";
}

CSS

.agechecker { display: block; width: 100%; height: 100%; ... } 
.agechecked .agechecker { display: none };

可悲的是,对于少数访客来说,年龄检查不能正常工作。有些人无法通过它,对于其他人,它会在每次加载页面后弹出,而对于某些人来说,cookie只是不起作用,这意味着复选框“记住我”会被打破。我想使用替代路线,至少确保年龄检查不会阻止任何人完全查看网站。

我只有javascript可供我使用,不想使用cookies。因为我非常确定相当于一个会话是一个cookie,在浏览器关闭后到期 - 所以这种限制我的选择......是啊,什么?

替代方案我正在考虑:

  • jStorage - 但这依赖于jQuery或Prototype等框架,这意味着我必须在页眉中加载jQuery。那不行;
  • window.name方法,结合JSON将数据存储在窗口name属性中,这对我来说有点过于苛刻,而且不会延续到其他标签
  • 我可以查看引用者(访问者是否已经在此域名的其他页面上了?)这是他/她通过年龄检查的90%保证

我在stackoverflow上找不到任何真正有用的信息,但我相信你们中的一些人已经建立了年龄验证。你是怎么解决这些问题的?

(编辑:我知道,我应该构建一个实际发布到服务器的表单,我可以以多种不同的方式存储和检索信息,但是从我这里拿走它我必须依赖于javascript。无法帮助它)

2 个答案:

答案 0 :(得分:2)

HTML5网络存储(localStorage)是一种客户端持久性机制。有关浏览器兼容性,请参阅http://caniuse.com/#feat=namevalue-storage

答案 1 :(得分:1)

我读了你的问题,因为你需要一种在不使用cookie的情况下在网页上保持状态的方法。 以下是一些选择: