只使用javascript而不使用cookie的年龄验证:如何

Age verification with just javascript and no cookies: how?

本文关键字:验证 如何 cookie javascript      更新时间:2023-12-02

我正在为一家销售啤酒的欧盟公司建立一个网站,需要一个年龄验证启动屏幕。这很容易,而且我已经准备好了。我使用了一个轻量级的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可供使用,不想使用cookie。因为我很确定会话的等价物是浏览器关闭后过期的cookie,所以这限制了我的选择…是的,什么?

我正在考虑的替代方案:

  • jStorage——但这依赖于一个框架,如jQuery或Prototype,这意味着我必须在页头中加载jQuery。那不行
  • window.name方法与JSON相结合,将数据存储在窗口name属性中,这对我来说有点太麻烦了,而且也不会转移到其他选项卡
  • 我可以检查refer(访问者已经在这个域的另一个页面上了吗?)这是他/她通过年龄检查的90%保证

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

(编辑:我知道,我应该构建一个表单,实际发布到服务器上,在那里我可以用无数种不同的方式存储和检索信息,但只要拿走它,我就必须依赖javascript。没办法)

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

我阅读了您的问题,因为您需要一种在不使用cookie的情况下在网页中保持状态的方法。这里有几个选择:

  • Html5本地存储http://diveintohtml5.info/storage.html
  • URL中的数据(http://example.com/app/agechecked/main)
  • 数据作为GET变量(?agechecked=1)